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 |
---|---|
|
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 |