IFSMgr_TransMatch( pioreq pir, srch_entry * pse, string_t pattern, _WIN32_FIND_DATA * pFindBuf )
This service converts a search buffer that is in the old DOS format (using the DTA) to a Win32 find buffer format with all the filenames in unicode. Optionally, if a valid pattern is passed in, it will perform long name matching semantics on the name that has been found. This service can be used to support long name matching semantics on volumes that allow only DOS semantics. The search can be done in the normal DOS style and then be filtered further and converted to the Win32 find buffer format by calling this service. This service calls IFSMgr_MetaMatch internally for its meta-matching, so it provides the same uniform matching semantics.
pir
Supplies pointer to the IOREQ structure.
pse
Supplies pointer to DOS search buffer structure srch_entry. The relevant fields are described below:
Srch_Entry Structure: | |
Value | Meaning |
se_key | Search key structure srch_key which contains information pertinent to the search operation that is in progress. This provides no input parameters. |
se_attrib | Returns attributes of matched file. |
Return Attribute Values: Any combination of the following attributes may be returned. | |
Value | Meaning |
FILE_ATTRIBUTE_READONLY | Read-Only file. |
FILE_ATTRIBUTE_HIDDEN | Hidden file. |
FILE_ATTRIBUTE_SYSTEM | System file. |
FILE_ATTRIBUTE_DIRECTORY | Subdirectory. |
FILE_ATTRIBUTE_ARCHIVE | Archive file. This attribute cannot be returned in combination with other attributes. |
FILE_ATTRIBUTE_VOLUMELABEL | Volume label. |
se_timeM
Returns DOS file time of matched file. This field is set by the FSD.
se_date
Returns DOS file date of matched file. This field is set by the FSD.
se_size
Returns size of matched file. This field is set by the FSD.
se_name[13]
Returns filename of matched file. This field is set by the FSD to the matching filename found by the search. The filename must be stored as an 8.3 format ASCIIZ string.
pattern
Supplies pattern to be matched in unicode long name format. Note that the 8.3 format is also acceptable since it is just a subset of the long name format.
pFindBuf
Supplies the pointer to the _WIN32_FIND_DATA buffer to contain the results of the find. Note that the filename strings in this buffer are unicode, so the buffer allocation needs to take care of this.
IOREQ Structure: | |
ir_pos | Returns the continuation key for the find. This is extracted from the sk_localFSD field in the srch_key structure se_key. |
ir_data | Returns the Win32 find structure _WIN32_FIND_DATA filled in as follows: |
Find Data Structure: | |
dwFileAttributes | Returns the file attributes of the file found. |
Attribute Values: | |
Value | Meaning Any valid combination of the following attributes may be returned. |
FILE_ATTRIBUTE_READONLY | Read-Only file. |
FILE_ATTRIBUTE_HIDDEN | Hidden file. |
FILE_ATTRIBUTE_SYSTEM | System file. |
FILE_ATTRIBUTE_DIRECTORY | Subdirectory. |
FILE_ATTRIBUTE_ARCHIVE | Archive file. |
FILE_ATTRIBUTE_VOLUMELABEL | Volume label found. |
ftCreationTime | Returns the file creation time in the Win32 FileTime structure format. |
Win32 FileTime Structure: | |
Value | Meaning |
dwLowDateTime | Returns the low double word of the time in Win32 format. |
dwHighDateTime | Returns the high double word of the time in Win32 format. |
ftLastAccessTime | Returns the file last access time in Win32 FileTime structure format defined above. |
ftLastWriteTime | Returns the file last write time in Win32 FileTime structure format defined above. |
nFileSizeHigh | Returns the high 32-bits of the file size. |
nFileSizeLow | Returns the low 32-bits of the file size. |
cFileName | Returns the unicode long filename that was found. |
CAlternateFileName | Returns the unicode alternate alias name (short file name) of the file that was found. |