[Toc][Index]

FSD Attribute

  
The format of the OS/2 FS_ATTRIBUTE is defined in Figure 1-4 and the 
definition list that follows it.   

 31  30  29  28  27  26  25  24  23  22  21  20  19  18  17  16
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| E | V | V | V | R | R | R | R | R | R | R | R | R | R | R | R |
| x | e | e | e | e | e | e | e | e | e | e | e | e | e | e | e |
| A | r | r | r | s | s | s | s | s | s | s | s | s | s | s | s |
| t | s | s | s | v | v | v | v | v | v | v | v | v | v | v | v |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| R | R | R | R | R | R | R | R | R | R | L | P | L | F | U | R |
| e | e | e | e | e | e | e | e | e | e | R | S | v | I | N | e |
| s | s | s | s | s | s | s | s | s | s | G | V | l | / | C | m |
| v | v | v | v | v | v | v | v | v | v | F | R | 7 | O |   | t |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0

  
Figure 1-4. OS/2 FSD Attribute   
Bits Description   
31 FSD Additional attributes. If 1, FSD has additional attributes. If 0, 
FS_ATTRIBUTE is the only FSD attribute information.   
30-28 VERSION NUMBER - FSD version number.   
27-6 RESERVED   
5 LARGEFILE  - FSD supports large files with lengths larger than 2 GB. The 
sfi_sizel and sfi_positionl fields are valid. They specify the 64-bit file 
length and 64-bit file position, respectively.   
If LARGEFILE bit is specified, the kernel will call the following 
additional FSD entry points instead:   
FS_CANCELLOCKREQUESTL   
FS_CHGFILEPTRL   
FS_FILELOCKSL   
FS_NEWSIZEL   
Except for FS_ATTRIBUTE, there is also FS32_ATTRIBUTE exported FSD 
variable. If it is exported, the FSD is considered to be a 32-bit FSD by 
the kernel. FS32_ATTRIBUTE may be an alias to FS_ATTRIBUTE. Both of them 
contain the same bit flags. When FS32_ATTRIBUTE is exported, the following 
new FSD exports are called by the kernel:   
FS32_READ   
FS32_READFILEATCACHE   
FS32_RETURNFILECACHE   
FS32_CHGFILEPTR (for seek with signed 32-bit position)   
FS32_CHGFILEPTRL (for seek with signed 64-bit position)   
FS32_WRITE   
Also, functions like FS_FINDFIRST/FS_FINDNEXT/FS_PATHINFO/FS_FILEINFO get 
called with FIL_STANDARDL/FIL_QUERYEASIZEL/ FIL_QUERUYEASFROMLISTL, 
instead of FIL_STANDARD/FIL_QUERYEASIZE/FIL_QUERUYEASFROMLIST.   
4 PIPESVR  - FSD supports remote named pipes. If this bit is set, the 
kernel will call FS_NMPIPE FSD entry point for pipes residing on remote 
servers.   
3 LEVEL7 - QPathInfo Level 7 bit. Set if FSD is case-preserving. If this 
bit is set, the kernel will call the FS_PATHINFO entry point with a level 
equal to 7. The output buffer is to be filled with a case-preserved copy 
of the path that was passed in by the user.   
2 FILEIO - File I/O bit. Set if FSD wants to see file locking/unlocking 
operations and compacted file I/O operations. If not set, the file I/O 
calls will be broken up into individual lock/unlock/read/write/seek calls 
and the FSD will not see the lock/unlock calls. FSDs that do not support 
file locking can set this bit to enable compacted file I/O operations.   
1 UNC - Universal Naming Convention bit. Set if FSD supports the Universal 
Naming Convention. OS/2 Version 2.0 supports multiple loaded UNC 
redirectors.   
When UNC flag is set, the FSD gets passed the UNC pathnames to 
FS_OPENCREATE/FS_FINDFIRST/FS_PATHINFO and also FS_VERIFYUNCNAME is called 
to verify the UNC server ownership by a FSD.   
0 REMOTE - Remote File System (Redirector). This bit tells the system 
whether the FSD uses static or dynamic media attachment. Local FSDs always 
use dynamic media attachment. Remote FSDs always use static media 
attachment. This bit is clear if it is a dynamic media attachment and set, 
if a static attachment . No FSD supports both static and dynamic media 
attachment. To support proper file locking, a remote FSD should also set 
the FILEIO bit. 
  

Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs