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 |