en:docs:fapi:dossetfilemode

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:docs:fapi:dossetfilemode [2018/08/28 11:29] (current)
prokushev created
Line 1: Line 1:
 +This call changes the mode (attribute) of the specified file.
 +
 +==Syntax==
 + ​DosSetFileMode (FileName, NewAttribute,​ Reserved) ​
 +
 +==Parameters==
 +;FileName (PSZ) - input : Address of the file path name.
 +:​[[DosQSysInfo]] is called by an application during initialization to determine the maximum path length allowed by OS/2.
 +;​NewAttribute (USHORT) - input : File's new attribute. File attributes are defined as follows:
 + '''​Bit ​       Description'''​
 + ​15-6 ​       Reserved and must be zero.
 + ​5 ​       File archive
 + ​4 ​       Subdirectory
 + ​3 ​       Volume label
 + ​2 ​       System file (excluded from normal directory searches)
 + ​1 ​       Hidden file
 + ​0 ​       Read only file
 +:These bits may be set individually or in combination. For example, an attribute value of 0021H (bits 5 and 0 set to 1) indicates a read-only file that should be archived.
 +;Reserved (ULONG) - input : Reserved must be set to zero.
 +
 +==Return Code==
 + rc (USHORT) - return
 +Return code descriptions are:
 +* 0        NO_ERROR ​
 +* 2        ERROR_FILE_NOT_FOUND ​
 +* 3        ERROR_PATH_NOT_FOUND ​
 +* 5        ERROR_ACCESS_DENIED ​
 +* 26        ERROR_NOT_DOS_DISK ​
 +* 32        ERROR_SHARING_VIOLATION ​
 +* 36        ERROR_SHARING_BUFFER_EXCEEDED ​
 +* 87        ERROR_INVALID_PARAMETER
 +* 108        ERROR_DRIVE_LOCKED ​
 +* 206        ERROR_FILENAME_EXCED_RANGE
 +
 +==Remarks==
 +Attributes for Volume Label (0008H) and Subdirectory (0010H) cannot be changed using DosSetFileMode. If these attributes are specified, ERROR_INVALID_PARAMETER is returned.
 +
 +[[DosQFileMode]] is used to query the current settings for file attributes. Calling [[DosQFSInfo]] obtains volume label information.
 +
 +Attributes of root directories cannot be changed using DosSetFileMode. If these attributes are specified, ERROR_ACCESS_DENIED is returned. ​
 +
 +==Example Code==
 +=== C Binding===
 +<PRE>
 +#define INCL_DOSFILEMGR
 +
 +USHORT ​ rc = DosSetFileMode(FileName,​ NewAttribute,​ Reserved);
 +
 +PSZ              FileName; ​     /* File path name string */
 +USHORT ​          ​NewAttribute; ​ /* New attribute of file */
 +ULONG            0;             /* Reserved (must be zero) */
 +
 +USHORT ​          ​rc; ​           /* return code */
 +</​PRE>​
 +
 +===MASM Binding===
 +<PRE>
 +EXTRN  DosSetFileMode:​FAR
 +INCL_DOSFILEMGR ​    EQU 1
 +
 +PUSH@  ASCIIZ ​ FileName ​     ;File path name string
 +PUSH   ​WORD ​   NewAttribute ​ ;New attribute of file
 +PUSH   ​DWORD ​  ​0 ​            ;​Reserved (must be zero)
 +CALL   ​DosSetFileMode
 +
 +Returns WORD
 +</​PRE>​
 +
 +=== Note ===
 +
 +Text based on http://​www.edm2.com/​index.php/​DosSetFileMode
 +
 +{{page>​en:​templates:​fapi}}
 +
  

en/docs/fapi/dossetfilemode.txt · Last modified: 2018/08/28 11:29 by prokushev