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 |