Функция 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, указывающее тип извлекаемой информации об объекте.
[out, optional] ObjectInformation
Необязательный указатель на буфер, в который должны быть возвращены запрошенные сведения. Размер и структура этих сведений зависят от значения параметра ObjectInformationClass .
[in] ObjectInformationLength
Размер буфера, на который указывает параметр ObjectInformation , в байтах.
[out, optional] ReturnLength
Необязательный указатель на расположение, в котором функция записывает фактический размер запрошенной информации. Если этот размер меньше или равен параметру ObjectInformationLength , функция копирует сведения в буфер ObjectInformation ; В противном случае он возвращает код ошибки NTSTATUS и возвращает в ReturnLength размер буфера, необходимый для получения запрошенной информации.
Возвращаемое значение
Возвращает код ошибки ИЛИ NTSTATUS.
Формы и значение кодов ошибок NTSTATUS перечислены в файле заголовка Ntstatus.h, доступном в WDK, и описаны в документации по WDK.
Комментарии
У этой функции нет связанного файла заголовка или библиотеки импорта. Для динамического связывания с Ntdll.dll необходимо использовать функцию LoadLibrary или GetProcAddress .
Если параметр 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;
Доступные элементы для этой структуры включают атрибуты объекта для дескриптора (Атрибуты), доступ, предоставленный дескриптору (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).
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | winternl.h |
Библиотека | ntdll.lib |
DLL | ntdll.dll |