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 (请参阅一节)

另請參閱

FILE_CASE_SENSITIVE_INFORMATION

FILE_INFORMATION_CLASS

FILE_STAT_INFORMATION

FILE_STAT_LX_INFORMATION

IO_STATUS_BLOCK

NtQueryInformationFile

OBJECT_ATTRIBUTES