Condividi tramite


Funzione NtQueryObject (winternl.h)

[Questa funzione può essere modificata o rimossa da Windows senza ulteriore preavviso.]

Recupera vari tipi di informazioni sugli oggetti.

Sintassi

__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
);

Parametri

[in, optional] Handle

Handle dell'oggetto su cui vengono eseguite query le informazioni.

[in] ObjectInformationClass

Uno dei valori seguenti, come enumerato in OBJECT_INFORMATION_CLASS, che indica il tipo di informazioni sull'oggetto da recuperare.

Termine Descrizione
ObjectBasicInformation Restituisce una struttura PUBLIC_OBJECT_BASIC_INFORMATION , come illustrato nella sezione Osservazioni seguente.
ObjectTypeInformation Restituisce una struttura PUBLIC_OBJECT_TYPE_INFORMATION , come illustrato nella sezione Osservazioni seguente.

[out, optional] ObjectInformation

Puntatore facoltativo a un buffer in cui devono essere restituite le informazioni richieste. Le dimensioni e la struttura di queste informazioni variano a seconda del valore del parametro ObjectInformationClass .

[in] ObjectInformationLength

Dimensioni del buffer a cui punta il parametro ObjectInformation , in byte.

[out, optional] ReturnLength

Puntatore facoltativo in una posizione in cui la funzione scrive le dimensioni effettive delle informazioni richieste. Se tale dimensione è minore o uguale al parametro ObjectInformationLength , la funzione copia le informazioni nel buffer ObjectInformation ; in caso contrario, restituisce un codice di errore NTSTATUS e restituisce in ReturnLength le dimensioni del buffer necessarie per ricevere le informazioni richieste.

Valore restituito

Restituisce un codice NTSTATUS o di errore.

Le forme e il significato dei codici di errore NTSTATUS sono elencati nel file di intestazione Ntstatus.h disponibile in WDK e sono descritti nella documentazione di WDK.

Commenti

Questa funzione non ha un file di intestazione o una libreria di importazione associata. È necessario usare la funzione LoadLibrary o GetProcAddress per collegarsi dinamicamente a Ntdll.dll.

Se il parametro ObjectInformationClass è ObjectBasicInformation, le informazioni sono contenute nella struttura seguente.

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;

I membri disponibili per questa struttura includono gli attributi dell'oggetto per l'handle (Attributi), l'accesso concesso per l'handle (GrantedAccess), il numero di handle aperti per l'oggetto (HandleCount) e il numero di riferimenti del kernel all'oggetto (PointerCount).

Se il parametro ObjectInformationClass è ObjectTypeInformation, le informazioni sono contenute nella struttura seguente.

typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION {
    UNICODE_STRING TypeName;
    ULONG Reserved [22];    // reserved for internal use
} PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION;

L'unico membro disponibile di questa struttura è la stringa del nome di tipo oggetto (TypeName).

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione winternl.h
Libreria ntdll.lib
DLL ntdll.dll