IoDeleteDevice, fonction (wdm.h)
La routine IoDeleteDevice supprime un objet d’appareil du système, par exemple, lorsque l’appareil sous-jacent est supprimé du système.
Syntaxe
void IoDeleteDevice(
[in] PDEVICE_OBJECT DeviceObject
);
Paramètres
[in] DeviceObject
Pointeur vers l’objet d’appareil à supprimer.
Valeur de retour
None
Remarques
Lors de la gestion d’une demande de IRP_MN_REMOVE_DEVICE PnP, un pilote PnP appelle IoDeleteDevice pour supprimer tous les objets d’appareil associés. Pour plus d’informations, consultez Gestion d’une demande de IRP_MN_REMOVE_DEVICE .
Un pilote hérité doit appeler cette routine lorsqu’elle est déchargée ou lorsque sa routine DriverEntry rencontre une erreur d’initialisation irrécupérable, telle que l’impossibilité d’initialiser correctement un appareil physique. Cette routine est également appelée lorsqu’un pilote reconfigure ses appareils dynamiquement. Par exemple, un pilote de disque appelé pour repartitionner un disque appelle IoDeleteDevice pour détruire les objets d’appareil représentant les partitions à remplacer.
Un pilote doit libérer certaines ressources pour lesquelles le pilote a fourni du stockage dans son extension de périphérique avant d’appeler IoDeleteDevice. Par exemple, si le pilote stocke le pointeur vers ses objets d’interruption dans l’extension de l’appareil, il doit appeler IoDisconnectInterrupt avant d’appeler IoDeleteDevice.
Un pilote ne peut appeler IoDeleteDevice qu’une seule fois pour un objet d’appareil donné.
Lorsqu’un pilote appelle IoDeleteDevice, le gestionnaire d’E/S supprime l’objet d’appareil cible s’il n’y a aucune référence en suspens à celui-ci. Toutefois, si des références en suspens subsistent, le gestionnaire d’E/S marque l’objet d’appareil comme « supprimer en attente » et supprime l’objet d’appareil lorsque les références sont publiées.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Règles de conformité DDI | DeleteDevice(wdm),HwStorPortProhibitedDDIs(storport),IrqlIoApcLte(wdm),PnpSurpriseRemove(wdm), RemoveLockCheck(wdm) |