Função NtQueryObject (winternl.h)
[Essa função pode ser alterada ou removida do Windows sem aviso prévio.]
Recupera vários tipos de informações de objeto.
Sintaxe
__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
O identificador do objeto para o qual as informações estão sendo consultadas.
[in] ObjectInformationClass
Um dos valores a seguir, conforme enumerado em OBJECT_INFORMATION_CLASS, indicando o tipo de informações de objeto a serem recuperadas.
[out, optional] ObjectInformation
Um ponteiro opcional para um buffer em que as informações solicitadas devem ser retornadas. O tamanho e a estrutura dessas informações variam dependendo do valor do parâmetro ObjectInformationClass .
[in] ObjectInformationLength
O tamanho do buffer apontado pelo parâmetro ObjectInformation , em bytes.
[out, optional] ReturnLength
Um ponteiro opcional para um local em que a função grava o tamanho real das informações solicitadas. Se esse tamanho for menor ou igual ao parâmetro ObjectInformationLength , a função copiará as informações para o buffer ObjectInformation ; caso contrário, ele retorna um código de erro NTSTATUS e retorna em ReturnLength o tamanho do buffer necessário para receber as informações solicitadas.
Retornar valor
Retorna um código de erro ou NTSTATUS.
Os formulários e a significância dos códigos de erro NTSTATUS estão listados no arquivo de cabeçalho Ntstatus.h disponível no WDK e são descritos na documentação do WDK.
Comentários
Essa função não tem nenhum arquivo de cabeçalho associado ou biblioteca de importação. Você deve usar a função LoadLibrary ou GetProcAddress para vincular dinamicamente a Ntdll.dll.
Se o parâmetro ObjectInformationClass for ObjectBasicInformation, as informações serão contidas na estrutura a seguir.
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;
Os membros disponíveis para essa estrutura incluem atributos de objeto para o identificador (Atributos), o acesso concedido para o identificador (GrantedAccess), o número de identificadores abertos para o objeto (HandleCount) e o número de referências de kernel ao objeto (PointerCount).
Se o parâmetro ObjectInformationClass for ObjectTypeInformation, as informações serão contidas na estrutura a seguir.
typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION {
UNICODE_STRING TypeName;
ULONG Reserved [22]; // reserved for internal use
} PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION;
O único membro disponível dessa estrutura é a cadeia de caracteres de nome do tipo objeto (TypeName).
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | winternl.h |
Biblioteca | ntdll.lib |
DLL | ntdll.dll |