Fonction IoQueryFullDriverPath (ntddk.h)

La routine IoQueryFullDriverPath récupère le nom complet du chemin d’accès du fichier binaire chargé pour l’objet pilote spécifié. À compter de Windows 10 version 1709, les appelants peuvent rechercher des objets de pilote qui ne sont pas les leurs, tant qu’ils utilisent une synchronisation appropriée pour s’assurer que la structure DRIVER_OBJECT reste valide pendant l’appel.

Syntaxe

NTSTATUS IoQueryFullDriverPath(
  [in]  PDRIVER_OBJECT  DriverObject,
  [out] PUNICODE_STRING FullPath
);

Paramètres

[in] DriverObject

Pointeur vers une structure DRIVER_OBJECT . Si vous appelez IoQueryFullDriverPath sur un ordinateur exécutant une version de Windows 10 antérieure à la version 1709, cette structure doit être l’objet pilote du pilote appelant.

[out] FullPath

Pointeur vers une structure de UNICODE_STRING allouée par l’appelant. En cas de retour réussi, cette structure contient le nom du chemin d’accès.

Valeur retournée

IoQueryFullDriverPath retourne STATUS_SUCCESS si l’appel récupère correctement le nom du chemin d’accès. Les valeurs de retour d’erreur possibles incluent les codes status suivants.

Code de retour Description
STATUS_ACCESS_DENIED L’objet pilote cible n’appartient pas à l’appelant. Ce code status est retourné uniquement sur les versions de Windows 10 antérieures à 1709.
STATUS_NOT_FOUND Aucune section (image mémoire chargée) n’est associée à l’objet driver.
STATUS_INSUFFICIENT_RESOURCES Les ressources disponibles sont insuffisantes pour effectuer l’opération demandée.

Remarques

Un pilote peut appeler cette routine pour rechercher le nom complet du chemin d’accès de son fichier binaire ou, à compter de Windows 10 version 1709, le nom complet du chemin d’accès du fichier binaire pour un autre pilote.

L’appelant alloue la structure UNICODE_STRING pointée par le paramètre FullPath , mais n’a pas besoin d’initialiser cette structure. IoQueryFullDriverPath suppose que le contenu d’origine de cette structure n’est pas valide et les remplace. Cette routine alloue une mémoire tampon de chaîne à partir de la mémoire système paginée, définit le membre Buffer de la structure pour qu’il pointe vers cette mémoire tampon et définit les membres MaximumLength et Buffer pour décrire la mémoire tampon et son contenu.

L’appelant est chargé de libérer le stockage pointé par FullPath-Buffer> lorsque la chaîne de chemin d’accès complète n’est plus nécessaire. En règle générale, l’appelant libère ce stockage en appelant une routine telle que ExFreePool.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.1.
Plateforme cible Universal
En-tête ntddk.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

DRIVER_OBJECT

ExFreePool

UNICODE_STRING