Afficher en anglais

Partage via


Fonction IoDeleteDevice (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

C++
void IoDeleteDevice(
  [in] PDEVICE_OBJECT DeviceObject
);

Paramètres

[in] DeviceObject

Pointeur vers l’objet d’appareil à supprimer.

Valeur de retour

Aucun

Remarques

Lors de la gestion d’une demande de IRP_MN_REMOVE_DEVICE PnP, un pilote PnP appelle IoDeleteDevice pour supprimer 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 qu’elle ne peut pas initialiser correctement un appareil physique. Cette routine est également appelée lorsqu’un pilote reconfigure dynamiquement ses appareils. Par exemple, un pilote de disque appelé pour repartitionner un disque appelle IoDeleteDevice pour supprimer les objets d’appareil représentant des partitions à remplacer.

Un pilote doit libérer certaines ressources pour lesquelles le pilote a fourni un stockage dans son extension d’appareil avant d’appeler IoDeleteDevice. Par exemple, si le pilote stocke le pointeur vers ses objets d’interruption dans l’extension d’appareil, il doit appeler IoDisconnectInterrupt avant d’appeler IoDeleteDevice.

Un pilote peut appeler IoDeleteDevice 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 pas de références en attente. Toutefois, si des références en attente restent, 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 libérées.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 2000.
plateforme cible Universel
d’en-tête wdm.h (include 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