FS_PATHINFO
Purpose
Returns information for a specific path or file.
Calling Sequence
int far pascal FS_PATHINFO(flag, pcdfsi, pcdfsd, pName, iCurDirEnd, level, pData, cbData) unsigned short flag; struct cdfsi far * pcdfsi; struct cdfsd far * pcdfsd; char far * pName; unsigned short iCurDirEnd; unsigned short level; char far * pData; unsigned short cbData;
Where
flag indicates retrieval or setting of information.
flag == 0x0000 | indicates retrieving information |
flag == 0x0001 | indicates setting information on the media |
flag == 0x0010 | indicates that the information being set must be written-through onto the disk before returning. This bit is never set when retrieving information. |
All other values are reserved.
pcdfsi is a pointer the file-system-independent working directory structure.
pcdfsd is a pointer to the file-system-dependent working directory structure.
pName is a pointer to the ASCIIZ name of the file or directory for which information is to be retrieved or set.
The FSD does not need to verify this pointer.
iCurDirEnd is the index of the end of the current directory in pName.
This is used to optimize FSD path processing. If iCurDirEnd == -1, there is no current directory relevant to the name text, that is a device.
level is the information level to be returned.
Level selects among a series of data structures to be returned or set.
pData is the address of the application data area.
Addressing of this data area is not validated by the kernel (see FSH_PROBEBUF). When retrieval (flag == 0) is specified, the FSD places the information into the buffer. When outputting information to a file (flag == 1), the FSD retrieves that data from the application buffer.
cbData is the length of the application data area.
For flag == 0, this is the length of the data the application wishes to retrieve. If there is not enough room for the entire level of data to be returned, the FSD returns a BUFFER OVERFLOW error. For flag == 1, this is the length of data to be applied to the file.
Remarks
See the descriptions of DosQPathInfo and DosSetPathInfo in the OS/2 Version 2.0 Control Program Programming Reference for details on information levels.
The FSD will not be called for DosQPathInfo level 5.
FSDs that are case-preserving (like HPFS) can decide to accept level 7 requests. A level 7 DosQueryPathInfo request asks the FSD to fill the pData buffer with the case-preserved path and filename of the path/filename passed in pName. Routing of level 7 requests will be determined by the kernel by checking the LV7 bit in a FSD's attribute double word.