Condividi tramite


Funzione IoDeleteDevice (wdm.h)

La routine IoDeleteDevice rimuove un oggetto dispositivo dal sistema, ad esempio quando il dispositivo sottostante viene rimosso dal sistema.

Sintassi

void IoDeleteDevice(
  [in] PDEVICE_OBJECT DeviceObject
);

Parametri

[in] DeviceObject

Puntatore all'oggetto dispositivo da eliminare.

Valore restituito

nessuno

Osservazioni

Quando si gestisce una richiesta di IRP_MN_REMOVE_DEVICE PnP, un driver PnP chiama IoDeleteDevice per eliminare tutti gli oggetti dispositivo associati. Per informazioni dettagliate, vedere Gestione di una richiesta di IRP_MN_REMOVE_DEVICE .

Un driver legacy deve chiamare questa routine quando viene scaricata o quando la routine DriverEntry rileva un errore di inizializzazione irreversibile, ad esempio non è in grado di inizializzare correttamente un dispositivo fisico. Questa routine viene chiamata anche quando un driver riconfigura i dispositivi in modo dinamico. Ad esempio, un driver del disco chiamato per ripartizionare un disco chiamerebbe IoDeleteDevice per eliminare gli oggetti dispositivo che rappresentano le partizioni da sostituire.

Un driver deve rilasciare determinate risorse per cui il driver ha fornito spazio di archiviazione nell'estensione del dispositivo prima di chiamare IoDeleteDevice. Ad esempio, se il driver archivia il puntatore agli oggetti interrupt nell'estensione del dispositivo, deve chiamare IoDisconnectInterrupt prima di chiamare IoDeleteDevice.

Un driver può chiamare IoDeleteDevice una sola volta per un determinato oggetto dispositivo.

Quando un driver chiama IoDeleteDevice, il gestore di I/O elimina l'oggetto dispositivo di destinazione se non sono presenti riferimenti in sospeso. Tuttavia, se rimangono riferimenti in sospeso, il gestore di I/O contrassegna l'oggetto dispositivo come "eliminazione in sospeso" ed elimina l'oggetto dispositivo quando vengono rilasciati i riferimenti.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Regole di conformità DDI DeleteDevice(wdm), HwStorPortProhibitedDDIs(storport), IrqlIoApcLte(wdm), PnpSurpriseRemove(wdm), RemoveLockCheck(wdm)

Vedi anche

IoCreateDevice

IoDisconnectInterrupt