Partager via


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 de pilote spécifié. À compter de Windows 10 version 1709, les appelants peuvent interroger des objets de pilote qui ne sont pas leurs propres, tant qu’ils utilisent une synchronisation appropriée pour s’assurer que la structure de 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 de pilote pour le pilote appelant.

[out] FullPath

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

Valeur de retour

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 d’état suivants.

Retourner le code Description
STATUS_ACCESS_DENIED L’objet de pilote cible n’appartient pas à l’appelant. Ce code d’état est retourné uniquement sur les versions de Windows 10 antérieures à 1709.
STATUS_NOT_FOUND L’objet du pilote n’a aucune section (image mémoire chargée) associée.
STATUS_INSUFFICIENT_RESOURCES Les ressources insuffisantes sont disponibles 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, à partir de Windows 10 version 1709, le nom complet 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 tampon de la structure pour qu’il pointe vers cette mémoire tampon et définit le MaximumLength et les membres de la mémoire tampon pour décrire la mémoire tampon et son contenu.

L’appelant est chargé de libérer le stockage vers lequel pointe fullPath->tampon lorsque la chaîne de chemin d’accès complet n’est plus nécessaire. En règle générale, l’appelant libère ce stockage en appelant une routine telle que ExFreePool.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 8.1.
plateforme cible Universel
d’en-tête ntddk.h (include Wdm.h, Ntddk.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

DRIVER_OBJECT

ExFreePool

UNICODE_STRING