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)

Voir aussi

IoCreateDevice

IoDisconnectInterrupt