ntQueryInformationByName 函式 (ntifs.h)
NtQueryInformationByName 會傳回檔名所指定檔案的要求資訊。
語法
__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryInformationByName(
[in] POBJECT_ATTRIBUTES ObjectAttributes,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[out] PVOID FileInformation,
[in] ULONG Length,
[in] FILE_INFORMATION_CLASS FileInformationClass
);
參數
[in] ObjectAttributes
包含檔案屬性 的OBJECT_ATTRIBUTES 結構的指標,包括檔名。
[out] IoStatusBlock
指標包含呼叫端 I/O 狀態的 IO_STATUS_BLOCK 結構。
[out] FileInformation
呼叫端提供的緩衝區指標,用來傳回檔案的要求資訊。 緩衝區的結構取決於 FileInformationClass 參數。
[in] Length
FileInformation 所指向緩衝區的長度,以位元組為單位。
[in] FileInformationClass
FILE_INFORMATION_CLASS值,識別 FileInformation 指向之緩衝區中要傳回的文件類型。 FileInformationClass 可以是下列其中一個值。
FILE_INFORMATION_CLASS值 | 要傳回的信息類型 |
---|---|
FileStatInformation (68) | FILE_STAT_INFORMATION。 從 Windows 10 1709 版開始提供。 |
FileStatLxInformation (70) | FILE_STAT_LX_INFORMATION。 從 Windows 10 2018 年 4 月更新開始提供。 |
FileCaseSensitiveInformation (71) | FILE_CASE_SENSITIVE_INFORMATION。 從 Windows 10 2018 年 4 月更新開始提供。 |
FileStatBasicInformation (77) | FILE_STAT_BASIC_INFORMATION。 從 Windows 11 組建 26048 開始提供。 |
傳回值
NtQueryInformationByName 會在成功完成時傳回STATUS_SUCCESS;否則會傳回錯誤碼,例如下列其中一項。
錯誤碼 | 意義 |
---|---|
STATUS_INVALID_PARAMETER | FileInformationClass 參數包含無效的值。 |
STATUS_INFO_LENGTH_MISMATCH | Length 指定的緩衝區大小不夠大,無法包含要求的資訊。 |
備註
NtQueryInformationByName 會查詢並傳回有關檔案的要求資訊。 它不需要開啟實際檔案,因此比 NtQueryInformationFile 更有效率,這需要檔案開啟 (,後續檔案關閉) 。
NtQueryInformationByName 的呼叫端必須在 IRQL = PASSIVE_LEVEL且啟用特殊核心 APC 時執行。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 (版本 1703) |
標頭 | ntifs.h |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (请参阅一节) |