Freigeben über


IoDeleteDevice-Funktion (wdm.h)

Die IoDeleteDevice Routine entfernt beispielsweise ein Geräteobjekt aus dem System, wenn das zugrunde liegende Gerät aus dem System entfernt wird.

Syntax

void IoDeleteDevice(
  [in] PDEVICE_OBJECT DeviceObject
);

Parameter

[in] DeviceObject

Zeiger auf das zu löschende Geräteobjekt.

Rückgabewert

Nichts

Bemerkungen

Bei der Behandlung einer PnP-IRP_MN_REMOVE_DEVICE-Anforderung ruft ein PnP-Treiber IoDeleteDevice auf, um alle zugeordneten Geräteobjekte zu löschen. Ausführliche Informationen finden Sie unter Behandeln einer IRP_MN_REMOVE_DEVICE Anforderungs-.

Ein Legacytreiber sollte diese Routine aufrufen, wenn sie entladen wird oder wenn die DriverEntry- Routine einen schwerwiegenden Initialisierungsfehler auftritt, z. B. dass ein physisches Gerät nicht ordnungsgemäß initialisiert werden kann. Diese Routine wird auch aufgerufen, wenn ein Treiber seine Geräte dynamisch neu konfiguriert. Ein Datenträgertreiber, der zum Neupartitionieren eines Datenträgers aufgerufen wird, würde z. B. IoDeleteDevice aufrufen, um die Geräteobjekte, die Partitionen darstellen, zu ersetzen, zu zerreißen.

Ein Treiber muss bestimmte Ressourcen freigeben, für die der Treiber Speicher in seiner Geräteerweiterung bereitgestellt hat, bevor er IoDeleteDeviceaufruft. Wenn der Treiber beispielsweise den Zeiger auf seine Interrupt-Objekte in der Geräteerweiterung speichert, muss er IoDisconnectInterrupt aufrufen, bevor IoDeleteDeviceaufgerufen wird.

Ein Treiber kann IoDeleteDevice nur einmal für ein bestimmtes Geräteobjekt aufrufen.

Wenn ein Treiber IoDeleteDeviceaufruft, löscht der E/A-Manager das Zielgerätobjekt, wenn keine ausstehenden Verweise darauf vorhanden sind. Wenn jedoch noch ausstehende Verweise bestehen, kennzeichnet der E/A-Manager das Geräteobjekt als "Löschen ausstehend" und löscht das Geräteobjekt, wenn die Verweise freigegeben werden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= APC_LEVEL
DDI-Complianceregeln DeleteDevice(wdm), HwStorPortProhibitedDIs(storport), IrqlIoApcLte(wdm), PnpSurpriseRemove(wdm), RemoveLockCheck(wdm)

Siehe auch

IoCreateDevice

IoDisconnectInterrupt-