DosSetFileInfo
Bindings: C, MASM
This call sets attribute and extended attribute information for a file.
DosSetFileInfo (FileHandle, FileInfoLevel, FileInfoBuf,
FileInfoBufSize)
FileHandle (HFILE) - input
File handle.
FileInfoLevel (USHORT) - input
Level of file information being set. A value of 1 or 2 can be
specified. The structures described in FileInfoBuf indicate the
information being set for each of these levels.
FileInfoBuf (PBYTE) - input
Address of the storage area containing the structures for file
information levels.
Level 1 Information
FileInfoBuf contains the following structure, to which information
is specified in the following format:
filedate (FDATE)
Structure containing the date of file creation.
Bit Description
15-9 Year, in binary, of file creation
8-5 Month, in binary, of file creation
4-0 Day, in binary, of file creation.
filetime (FTIME)
Structure containing the time of file creation.
Bit Description
15-11 Hours, in binary, of file creation
10-5 Minutes, in binary, of file creation
4-0 Seconds, in binary number of two-second increments, of
file creation.
fileaccessdate (FDATE)
Structure containing the date of last access. See FDATE in
filedate.
fileaccesstime (FTIME)
Structure containing the time of last access. See FTIME in
filetime.
writeaccessdate (FDATE)
Structure containing the date of last write. See FDATE in
filedate.
writeaccesstime (FTIME)
Structure containing the time of last write. See FTIME in
filetime.
filesize (ULONG)
File size.
filealloc (ULONG)
Allocated file size.
fileattrib (USHORT)
Attributes of the file, defined in DosSetFileMode.
Level 2 Information
FileInfoBuf contains an EAOP structure, which has the following
format:
fpGEAList (PGEALIST)
Address of GEAList. GEAList is a packed array of variable length
"get EA" structures, each containing an EA name and the length
of the name.
fpFEAList (PFEALIST)
Address of FEAList. FEAList is a packed array of variable length
"full EA" structures, each containing an EA name and its
corresponding value, as well as the lengths of the name and the
value.
oError (ULONG)
Offset into structure where error has occurred.
Level 2 sets a series of EA name/value pairs. On input, FileInfoBuf
is an EAOP structure above. fpGEAList is ignored. fpFEAList points
to a data area where the relevant FEA list is to be found. oError
is ignored. Following is the format of the FEAList structure:
cbList (ULONG)
Length of the FEA list, including the length itself.
list (FEA)
List of FEA structures. An FEA structure has the following
format:
Flags (BYTE)
Bit indicator describing the characteristics of the EA being
defined.
Bit Description
7 Critical EA.
6-0 Reserved and must be set to zero.
If bit 7 is set to 1, this indicates a critical EA. If bit 7
is 0, this means the EA is noncritical; that is, the EA is
not essential to the intended use by an application of the
file with which it is associated.
cbName (BYTE)
Length of EA ASCIIZ name, which does not include the null
character.
cbValue (USHORT)
Length of EA value, which cannot exceed 64KB.
szName (PSZ)
Address of the ASCIIZ name of EA.
aValue (PSZ)
Address of the free-format value of EA.
Note:
The szName and aValue fields are not included as part of header
or include files. Because of their variable lengths, these
entries must be built manually.
On output, fpGEAList is unchanged. fpFEAList is unchanged as is
the area pointed to by fpFEAList. If an error occurred during the
set, oError is the offset of the FEA where the error occurred. The
API return code is the error code corresponding to the condition
generating the error. If no error occurred, oError is undefined.
FileInfoBufSize (USHORT) - input
Length of FileInfoBuf.
rc (USHORT) - return
Return code descriptions are:
0 NO_ERROR
1 ERROR_INVALID_FUNCTION
5 ERROR_ACCESS_DENIED
6 ERROR_INVALID_HANDLE
87 ERROR_INVALID_PARAMETER
122 ERROR_INSUFFICIENT_BUFFER
124 ERROR_INVALID_LEVEL
130 ERROR_DIRECT_ACCESS_HANDLE
254 ERROR_INVALID_EA_NAME
255 ERROR_EA_LIST_INCONSISTENT
Remarks
DosSetFileInfo is successful only when the file is opened for write
access, with a deny-both sharing mode specified for access to the file by
other processes. If the file is already opened with conflicting sharing
rights, the call to DosOpen or DosOpen2 will fail.
A 0 value in the date and time components of a field does not change the
field. For example, if both "last write date" and "last write time" are
specified as 0 in the Level 1 information structure, then both attributes
of the file are left unchanged. If either "last write date" or "last
write time" are specified as non-zero, both attributes of the file are
set to the new values.
The FAT file system supports modification of only the dates and times of
the last write. Creation and last access dates and times are not
affected.
The last modification date and time will get changed if the extended
attributes are modified.
Family API Considerations
It is not possible to create a label with leading blank characters in DOS
mode, because of restrictions on the previous Interrupt 21h function call
(create an FCB type file), which must be used by FAPI.
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs