[Toc][Index]

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