Purpose
Find occurrence of a file name in a directory starting from a position or name.
Calling Sequence
int far pascal FS_FINDFROMNAME(pfsfsi, pfsfsd, pData, cbData, pcMatch, level, position, pName, flags) struct fsfsi far * pfsfsi; struct fsfsd far * pfsfsd; char far * pData; unsigned short cbData; unsigned short far * pcMatch; unsigned short level; unsigned long position; char far * pName; unsigned short flags;
Where
pfsfsi is a pointer to the file-system-independent file search structure. The FSD should not update this structure.
pfsfsd is a pointer to the file-system-dependent file search structure. The FSD may use this to store information about continuation of the search.
pData is the address of the application data area.
Addressing of this data area has not been validated by the kernel (see FSH_PROBEBUF). The FSD will fill in this area with a set of packed, variable- length structures that contain the requested data and matching file names in the format required for DosFindFirst/DosFindNext.
cbData is the length of the application data area in bytes.
pcMatch is a pointer to the number of matching entries. The FSD will return at most this number of entries. The FSD will store into it the number of entries actually placed in the data area. The FSD does not need to validate this pointer.
level is the information level to be returned. Level selects among a series of structures of data to be returned. The level passed to the FSD is valid.
position is the file-system-specific information about where to restart the search from. This information was returned by the FSD in the ResultBuf for an FS_FINDFIRST/FS_FINDNEXT/FS_FINDFROMNAME call.
pName is the filename from which to continue the search. The FSD does not need to validate this pointer.
flags indicates whether to return file position information. The flag passed to the FSD has a valid value.
Remarks
The FSD may use the position or filename to determine the position > from which to resume the directory search. The FSD need not return position if it uses name and vice versa.
For flags == 1, the FSD must store in the position field adequate information to allow the search to be resumed from the file by calling FS_FINDFROMNAME. See FS_FINDFIRST for a description of the data format.
The FSD must ensure that enough information is stored in the fsfsd data structure to enable it to continue the search.
Note: The FSD will be called with the FINDFIRST/FINDFROMNAME interface when the 32-bit DosFindFirst/DosFindNext APIs are called. THIS IS A CHANGE FROM 1.X IFS interface for redirector FSDs. The kernel will also be massaging the find records so that they appear the way the caller expects. Redirectors who have to resume searches should take this information into account. (i.e. You might want to reduce the size of the buffer sent to the server, so that the position fields can be added to the beginning of all the find records).