Función NtQueryObject (winternl.h)
[Esta función se puede cambiar o quitar de Windows sin previo aviso.]
Recupera varios tipos de información de objeto.
Sintaxis
__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
);
Parámetros
[in, optional] Handle
Identificador del objeto para el que se consulta información.
[in] ObjectInformationClass
Uno de los siguientes valores, como se enumera en OBJECT_INFORMATION_CLASS, que indica el tipo de información de objeto que se va a recuperar.
[out, optional] ObjectInformation
Puntero opcional a un búfer donde se va a devolver la información solicitada. El tamaño y la estructura de esta información varían en función del valor del parámetro ObjectInformationClass .
[in] ObjectInformationLength
Tamaño del búfer al que apunta el parámetro ObjectInformation , en bytes.
[out, optional] ReturnLength
Puntero opcional a una ubicación donde la función escribe el tamaño real de la información solicitada. Si ese tamaño es menor o igual que el parámetro ObjectInformationLength , la función copia la información en el búfer ObjectInformation ; de lo contrario, devuelve un código de error NTSTATUS y devuelve en ReturnLength el tamaño del búfer necesario para recibir la información solicitada.
Valor devuelto
Devuelve un NTSTATUS o un código de error.
Los formularios y la importancia de los códigos de error NTSTATUS se enumeran en el archivo de encabezado Ntstatus.h disponible en WDK y se describen en la documentación de WDK.
Comentarios
Esta función no tiene ningún archivo de encabezado asociado ni biblioteca de importación. Debe usar la función LoadLibrary o GetProcAddress para vincular dinámicamente a Ntdll.dll.
Si el parámetro ObjectInformationClass es ObjectBasicInformation, la información se incluye en la estructura siguiente.
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;
Los miembros disponibles para esta estructura incluyen atributos de objeto para el identificador (Atributos), el acceso concedido para el identificador (GrantedAccess), el número de identificadores abiertos al objeto (HandleCount) y el número de referencias de kernel al objeto (PointerCount).
Si el parámetro ObjectInformationClass es ObjectTypeInformation, la información se incluye en la siguiente estructura.
typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION {
UNICODE_STRING TypeName;
ULONG Reserved [22]; // reserved for internal use
} PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION;
El único miembro disponible de esta estructura es la cadena de nombre de tipo de objeto (TypeName).
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | winternl.h |
Library | ntdll.lib |
Archivo DLL | ntdll.dll |