Fonction ZwUnloadDriver (wdm.h)

La routine ZwUnloadDriver décharge un pilote du système. Utilisez cette routine avec une extrême prudence (voir la section Remarques ci-dessous).

Syntaxe

NTSYSAPI NTSTATUS ZwUnloadDriver(
  [in] PUNICODE_STRING DriverServiceName
);

Paramètres

[in] DriverServiceName

Pointeur vers une chaîne Unicode comptée qui spécifie un chemin d’accès à la clé de Registre du pilote, \Registry\Machine\System\CurrentControlSet\Services\<DriverName>DriverName est le nom du pilote.

Valeur retournée

ZwUnloadDriver retourne STATUS_SUCCESS ou une valeur NTSTATUS d’erreur telle que STATUS_INVALID_DEVICE_REQUEST.

Si le pilote spécifié dans DriverServiceName n’a aucune routine de rappel DriverUnload définie dans sa structure de DRIVER_OBJECT , ZwUnloadDriver retourne STATUS_INVALID_DEVICE_REQUEST.

Remarques

ZwUnloadDriver décharge dynamiquement un pilote de système de fichiers ou d’appareil du système en cours d’exécution. Il n’est pas recommandé qu’un pilote appelle ZwUnloadDriver sur lui-même.

Un pilote de filtre de système de fichiers ne peut pas être déchargé en toute sécurité d’un système en cours d’exécution. Par conséquent, un filtre doit uniquement utiliser ZwUnloadDriver à des fins de débogage. Il ne doit pas appeler cette routine dans une version commerciale du filtre.

Si DriverName est le nom d’un pilote de périphérique PnP, ZwUnloadDriver retourne STATUS_INVALID_DEVICE_REQUEST et ne décharge pas le pilote.

Un minifiltre doit utiliser FltUnloadFilter au lieu de ZwUnloadDriver pour décharger un minifiltre de prise en charge.

Si l’appel à la fonction ZwUnloadDriver se produit en mode utilisateur, vous devez utiliser le nom « NtUnloadDriver » au lieu de « ZwUnloadDriver ».

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment dans la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Utilisation des versions Nt et Zw des routines des services système natifs.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport),PowerIrpDDis(wdm)

Voir aussi

FltUnloadFilter

RtlInitUnicodeString

UNICODE_STRING

Utilisation des versions Nt et Zw des routines natives des services système natifs