Jump to content

DosQFileMode: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
mNo edit summary
Line 12: Line 12:
:DosQSysInfo is called by an application during initialization to determine the maximum path length allowed by OS/2.  
:DosQSysInfo is called by an application during initialization to determine the maximum path length allowed by OS/2.  
;CurrentAttribute (PUSHORT) - output : Address of the file's current attribute.
;CurrentAttribute (PUSHORT) - output : Address of the file's current attribute.
  '''Bit       Description'''
  '''Bit   Description'''
  15-6       Reserved.
  15-6 Reserved.
  5       File archive  
  5     File archive  
  4       Subdirectory  
  4     Subdirectory  
  3       Reserved
  3     Reserved
  2       System file
  2     System file
  1       Hidden file
  1     Hidden file
  0       Read only file
  0     Read only file
These bits can 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 is archived.
These bits can 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 is archived.
; Reserved (ULONG) - input : Reserved must be set to zero.
; Reserved (ULONG) - input : Reserved must be set to zero.
Line 26: Line 26:
  rc (USHORT) - return
  rc (USHORT) - return
Return code descriptions are:
Return code descriptions are:
* 0         NO_ERROR  
* 0   NO_ERROR
* 2         ERROR_FILE_NOT_FOUND  
* 2   ERROR_FILE_NOT_FOUND
* 3         ERROR_PATH_NOT_FOUND  
* 3   ERROR_PATH_NOT_FOUND
* 26       ERROR_NOT_DOS_DISK  
* 26 ERROR_NOT_DOS_DISK
* 87       ERROR_INVALID_PARAMETER  
* 87 ERROR_INVALID_PARAMETER
* 108       ERROR_DRIVE_LOCKED  
* 108 ERROR_DRIVE_LOCKED
* 206       ERROR_FILENAME_EXCED_RANGE
* 206 ERROR_FILENAME_EXCED_RANGE


==Remarks==
==Remarks==
The `Volume Label' type attribute is not returned by DosQFileMode. DosQFSInfo may be used for this purpose.  
The "Volume Label" type attribute is not returned by DosQFileMode. [[DosQFSInfo]] may be used for this purpose.


==Example Code==
==Example Code==
Line 44: Line 44:
USHORT  rc = DosQFileMode(FilePathName, CurrentAttribute, Reserved);
USHORT  rc = DosQFileMode(FilePathName, CurrentAttribute, Reserved);


PSZ             FilePathName;    /* File path name */
PSZ     FilePathName;    /* File path name */
PUSHORT         CurrentAttribute; /* Data area (returned) */
PUSHORT CurrentAttribute; /* Data area (returned) */
ULONG           0;                /* Reserved (must be zero) */
ULONG   0;                /* Reserved (must be zero) */


USHORT           rc;              /* return code */
USHORT rc;              /* return code */
</PRE>
</PRE>


Line 63: Line 63:
Returns WORD
Returns WORD
</PRE>
</PRE>
==Related Functions==
*


[[Category:Dos]]
[[Category:Dos]]

Revision as of 22:51, 5 November 2017

Legacy Function Warning
It is recommended to use a newer replacement for this function.
Replacement: DosQueryFileMode
Remarks: This function was renamed to DosQueryFileMode on OS/2 2.0.

This call queries the mode (attribute) of the specified file.

Syntax

DosQFileMode (FilePathName, CurrentAttribute, Reserved) 

Parameters

FilePathName (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.
CurrentAttribute (PUSHORT) - output
Address of the file's current attribute.
Bit   Description
15-6  Reserved.
5     File archive 
4     Subdirectory 
3     Reserved
2     System file
1     Hidden file
0     Read only file

These bits can 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 is 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
  • 26 ERROR_NOT_DOS_DISK
  • 87 ERROR_INVALID_PARAMETER
  • 108 ERROR_DRIVE_LOCKED
  • 206 ERROR_FILENAME_EXCED_RANGE

Remarks

The "Volume Label" type attribute is not returned by DosQFileMode. DosQFSInfo may be used for this purpose.

Example Code

C Binding

#define INCL_DOSFILEMGR

USHORT  rc = DosQFileMode(FilePathName, CurrentAttribute, Reserved);

PSZ     FilePathName;     /* File path name */
PUSHORT CurrentAttribute; /* Data area (returned) */
ULONG   0;                /* Reserved (must be zero) */

USHORT  rc;               /* return code */

MASM Binding

EXTRN  DosQFileMode:FAR
INCL_DOSFILEMGR     EQU 1

PUSH@  ASCIIZ  FilePathName     ;File path name
PUSH@  WORD    CurrentAttribute ;Data area (returned)
PUSH   DWORD   0                ;Reserved (must be zero)
CALL   DosQFileMode

Returns WORD