Share via


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.

Termo Descrição
ObjectBasicInformation Retorna uma estrutura PUBLIC_OBJECT_BASIC_INFORMATION conforme mostrado na seção Comentários a seguir.
ObjectTypeInformation Retorna uma estrutura PUBLIC_OBJECT_TYPE_INFORMATION , conforme mostrado na seção Comentários a seguir.

[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