ntQueryObject 函式 (winternl.h)
[此函式可能會從 Windows 變更或移除,而不需進一步通知。]
擷取各種對象資訊。
語法
__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryObject(
[in, optional] HANDLE Handle,
[in] OBJECT_INFORMATION_CLASS ObjectInformationClass,
[out, optional] PVOID ObjectInformation,
[in] ULONG ObjectInformationLength,
[out, optional] PULONG ReturnLength
);
參數
[in, optional] Handle
正在查詢資訊之物件的句柄。
[in] ObjectInformationClass
下列其中一個值,如 OBJECT_INFORMATION_CLASS 中列舉,表示要擷取的對象資訊種類。
詞彙 | 描述 |
---|---|
ObjectBasicInformation | 傳回 PUBLIC_OBJECT_BASIC_INFORMATION 結構,如下列一節所示。 |
ObjectTypeInformation | 傳回 PUBLIC_OBJECT_TYPE_INFORMATION 結構,如下列一節所示。 |
[out, optional] ObjectInformation
要傳回所要求信息的緩衝區選擇性指標。 這項資訊的大小和結構會根據 ObjectInformationClass 參數的值而有所不同。
[in] ObjectInformationLength
ObjectInformation 參數指向的緩衝區大小,以位元組為單位。
[out, optional] ReturnLength
函式寫入所要求信息實際大小的選擇性指標。 如果該大小小於或等於 ObjectInformationLength 參數,函式會將資訊複製到 ObjectInformation 緩衝區;否則,它會傳回NTSTATUS錯誤碼,並在 ReturnLength 中傳回接收要求資訊所需的緩衝區大小。
傳回值
傳回 NTSTATUS 或錯誤碼。
NTSTATUS 錯誤碼的表單和重要性會列在 WDK 中提供的 Ntstatus.h 頭檔中,並在 WDK 檔中說明。
備註
此函式沒有相關聯的頭檔或匯入連結庫。 您必須使用 LoadLibrary 或 GetProcAddress 函式來動態連結至 Ntdll.dll。
如果 ObjectInformationClass 參數為 ObjectBasicInformation,則資訊會包含在下列結構中。
typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION {
ULONG Attributes;
ACCESS_MASK GrantedAccess;
ULONG HandleCount;
ULONG PointerCount;
ULONG Reserved[10]; // reserved for internal use
} PUBLIC_OBJECT_BASIC_INFORMATION, *PPUBLIC_OBJECT_BASIC_INFORMATION;
這個結構的可用成員包括句柄 (Attributes) 的物件屬性、授與句柄 (GrantedAccess) 的存取權、對象的開啟句柄數目 (HandleCount) ,以及物件的核心參考數目 (PointerCount) 。
如果 ObjectInformationClass 參數為 ObjectTypeInformation,則資訊會包含在下列結構中。
typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION {
UNICODE_STRING TypeName;
ULONG Reserved [22]; // reserved for internal use
} PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION;
這個結構的唯一可用成員是 typename (typeName) 物件類型名稱字串。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | winternl.h |
程式庫 | ntdll.lib |
Dll | ntdll.dll |