Partager via


ObQueryNameString, fonction (ntifs.h)

La routine ObQueryNameString fournit le nom, s’il existe un objet donné auquel 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 par 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 est NULL, de longueur doit être égale à 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 Longueur est égale à zéro, ReturnLength reçoit la taille, en octets, de la mémoire tampon nécessaire pour contenir les informations de nom d’objet. Une taille raisonnable pour la mémoire tampon pour prendre en charge la plupart des noms d’objets est de 1024 octets. Si longueur est égale à zéro, ObjectNameInfo peut être 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 (lorsqu’il est présent) inclut un terminateur NULL et tous les séparateurs de chemin d’accès « \ » 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 de retour

ObQueryNameString retourne STATUS_SUCCESS ou une valeur NTSTATUS, par exemple :

Retourner le code 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éfinie sur zéro, STATUS_INFO_LENGTH_MISMATCH est retournée.

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 majeure partie du chemin d’accès complet de l’objet que possible. Dans ce cas, ObQueryNameString définit Name.Buffer à l’adresse du nom de fin 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é acquis, ObQueryNameString définit Name.Buffer sur NULL et définit Name.Length et Name.MaximumLength sur zéro.

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

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000
plateforme cible Universel
d’en-tête ntifs.h (include FltKernel.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Voir aussi

UNICODE_STRING