ObQueryNameString, fonction (ntifs.h)

La routine ObQueryNameString fournit le nom, le cas échéant, d’un objet donné vers lequel l’appelant a un pointeur.

Syntaxe

NTSTATUS ObQueryNameString(
  [in]            PVOID                    Object,
  [out, optional] POBJECT_NAME_INFORMATION ObjectNameInfo,
  [in]            ULONG                    Length,
  [out]           PULONG                   ReturnLength
);

Paramètres

[in] Object

Pointeur vers l’objet pour lequel le nom est demandé. Ce paramètre est obligatoire et ne peut pas être NULL.

[out, optional] ObjectNameInfo

Pointeur vers une mémoire tampon allouée à l’appelant, du type suivant, qui reçoit les informations de nom d’objet :

typedef struct _OBJECT_NAME_INFORMATION {
  UNICODE_STRING Name;
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;

Ce paramètre est facultatif et peut être NULL. Si ObjectNameInfo a la valeur NULL, Length doit être égal à zéro.

[in] Length

Taille, en octets, de la mémoire tampon pointée par ObjectNameInfo. Ce paramètre est facultatif et peut être égal à zéro. Si Length est égal à zéro, ReturnLength reçoit la taille, en octets, de la mémoire tampon nécessaire pour contenir les informations de nom d’objet. La taille raisonnable de la mémoire tampon pour prendre en charge la plupart des noms d’objets est de 1 024 octets. Si Length est égal à zéro, ObjectNameInfo peut avoir la valeur NULL.

[out] ReturnLength

Pointeur vers une variable allouée par l’appelant qui reçoit la taille, en octets, des informations de nom d’objet retournées. Le nom de l’objet (le cas échéant) inclut un terminateur NULL et tous les séparateurs de chemin « \ » dans le nom. Si ObQueryNameString retourne STATUS_INFO_LENGTH_MISMATCH, il définit ce paramètre sur la longueur de mémoire tampon requise.

Valeur retournée

ObQueryNameString retourne STATUS_SUCCESS ou une valeur NTSTATUS telle que la suivante :

Code de retour Description
STATUS_INFO_LENGTH_MISMATCH
La mémoire tampon pointée par ObjectNameInfo est trop petite pour contenir les informations de nom d’objet demandées. ReturnLength pointe vers la taille de mémoire tampon requise. Dans ce cas, aucune information de nom d’objet n’est retournée. Il s’agit d’un code d’erreur. N’oubliez pas que si Longueur est défini sur zéro, STATUS_INFO_LENGTH_MISMATCH est retourné.

Remarques

Si l’objet donné est nommé et que le nom de l’objet a été acquis avec succès, la chaîne retournée est le nom de l’objet donné, y compris la plus grande partie possible du chemin d’accès complet de l’objet. Dans ce cas, ObQueryNameString définit Name.Buffer sur l’adresse du nom terminé par NULL de l’objet spécifié. La valeur de Name.MaximumLength est la longueur du nom de l’objet, y compris l’arrêt NULL . La valeur de Name.Length est la longueur du seul nom de l’objet.

Si l’objet donné n’est pas nommé ou si le nom de l’objet n’a pas été correctement acquis, ObQueryNameString définit Name.Buffer sur NULL et définit Name.Length et Name.MaximumLength sur zéro.

Le stockage pour ObjectNameInfo peut être alloué à partir d’un pool paginé ou non.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000
Plateforme cible Universal
En-tête ntifs.h (include FltKernel.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Voir aussi

UNICODE_STRING