Partager via


Fonction NtQueryObject (winternl.h)

[Cette fonction peut être modifiée ou supprimée de Windows sans préavis.]

Récupère différents types d’informations sur les objets.

Syntaxe

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

Paramètres

[in, optional] Handle

Handle de l’objet pour lequel des informations sont interrogées.

[in] ObjectInformationClass

L’une des valeurs suivantes, énumérées dans OBJECT_INFORMATION_CLASS, indiquant le type d’informations d’objet à récupérer.

Terme Description
ObjectBasicInformation Retourne une structure PUBLIC_OBJECT_BASIC_INFORMATION comme indiqué dans la section Remarques suivante.
ObjectTypeInformation Retourne une structure PUBLIC_OBJECT_TYPE_INFORMATION comme indiqué dans la section Remarques suivante.

[out, optional] ObjectInformation

Pointeur facultatif vers une mémoire tampon où les informations demandées doivent être retournées. La taille et la structure de ces informations varient en fonction de la valeur du paramètre ObjectInformationClass .

[in] ObjectInformationLength

Taille de la mémoire tampon pointée vers le paramètre ObjectInformation , en octets.

[out, optional] ReturnLength

Pointeur facultatif vers un emplacement où la fonction écrit la taille réelle des informations demandées. Si cette taille est inférieure ou égale au paramètre ObjectInformationLength , la fonction copie les informations dans la mémoire tampon ObjectInformation ; sinon, il retourne un code d’erreur NTSTATUS et retourne dans ReturnLength la taille de la mémoire tampon requise pour recevoir les informations demandées.

Valeur retournée

Retourne un code d’erreur ou NTSTATUS.

Les formes et l’importance des codes d’erreur NTSTATUS sont répertoriés dans le fichier d’en-tête Ntstatus.h disponible dans le WDK et sont décrits dans la documentation WDK.

Remarques

Cette fonction n’a pas de fichier d’en-tête associé ni de bibliothèque d’importation. Vous devez utiliser la fonction LoadLibrary ou GetProcAddress pour lier dynamiquement à Ntdll.dll.

Si le paramètre ObjectInformationClass est ObjectBasicInformation, les informations sont contenues dans la structure suivante.

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;

Les membres disponibles pour cette structure incluent les attributs d’objet pour le handle (Attributes), l’accès accordé pour le handle (GrantedAccess), le nombre de handles ouverts à l’objet (HandleCount) et le nombre de références de noyau à l’objet (PointerCount).

Si le paramètre ObjectInformationClass est ObjectTypeInformation, les informations sont contenues dans la structure suivante.

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

Le seul membre disponible de cette structure est la chaîne de nom de type objet (TypeName).

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête winternl.h
Bibliothèque ntdll.lib
DLL ntdll.dll