共用方式為


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