FltParseFileName function (fltkernel.h)
FltParseFileName parses the extension, stream, and final component from a file name string.
Syntax
NTSTATUS FLTAPI FltParseFileName(
[in] PCUNICODE_STRING FileName,
[in, out] PUNICODE_STRING Extension,
[in, out] PUNICODE_STRING Stream,
[in, out] PUNICODE_STRING FinalComponent
);
Parameters
[in] FileName
Pointer to a UNICODE_STRING structure that contains the string to parse as a file name. This parameter is required and cannot be NULL.
[in, out] Extension
Pointer to a UNICODE_STRING structure that receives the extension parsed from the FileName string. If no extension is found, FltParseFileName sets Extension.Buffer to NULL and Extension.Length to zero. Otherwise, Extension.Buffer receives a pointer to the beginning of the extension in FileName.Buffer, and Extension.Length receives the length, in bytes, of the extension. This parameter is optional and can be NULL.
[in, out] Stream
Pointer to a UNICODE_STRING structure that receives the stream name parsed from the FileName string. If no stream name is found, FltParseFileName sets Stream.Buffer to NULL and Stream.Length to zero. Otherwise, Stream.Buffer receives a pointer to the beginning of the stream name in FileName.Buffer, and Stream.Length receives the length, in bytes, of the stream name. This parameter is optional and can be NULL.
[in, out] FinalComponent
Pointer to a UNICODE_STRING structure that receives the final name component parsed from the FileName string. If no final component is found, FltParseFileName sets FinalComponent.Buffer to NULL and FinalComponent.Length to zero. Otherwise, FinalComponent.Buffer receives a pointer to the beginning of the final component in FileName.Buffer, and FinalComponent.Length receives the length, in bytes, of the final component. This parameter is optional and can be NULL.
Return value
FltParseFileName returns STATUS_SUCCESS or an appropriate NTSTATUS error code.
Remarks
FltParseFileName parses the extension, stream name, and final component from a file name string. The file name is not required to be normalized or a full path name. If the file name is a short file name, FltParseFileName parses only the extension.
The following is an example of a normalized name for a local file:
\Device\HarddiskVolume1\Documents and Settings\MyUser\My Documents\Test Results.txt:stream1
FltParseFileName parses this normalized name as follows:
Extension: "txt"
Stream: ":stream1"
FinalComponent: "Test Results.txt:stream1"
The following is an example of a short name for a file:
TestRe~1.txt
FltParseFileName parses this short name as follows:
Extension: "txt"
Stream: NULL
FinalComponent: "TestRe~1.txt"
For more information about file name normalization and file name parsing, see FLT_FILE_NAME_INFORMATION.
To parse the contents of a FLT_FILE_NAME_INFORMATION structure, call FltParseFileNameInformation.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available in Windows XP with Service Pack 2 (SP2) and later versions of the Windows operating system. |
Target Platform | Universal |
Header | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |