IRP_MN_REMOVE_DEVICE

Tutti i driver PnP devono gestire questo IRP.

Valore

0x02

Codice principale

IRP_MJ_PNP

Data di invio

Il gestore PnP usa questo IRP per indirizzare i driver per rimuovere la rappresentazione software di un dispositivo (oggetti dispositivo e così via). Il gestore PnP invia questo IRP quando un dispositivo è stato rimosso in modo ordinato (ad esempio, avviato da un utente nel programma Unplug o Eject Hardware), a sorpresa (un utente estrae il dispositivo dallo slot senza alcun avviso precedente) o quando l'utente richiede di aggiornare i driver.

Nei sistemi Windows 2000 e versioni successive, gestione PnP invia anche questo IRP se uno dei driver nello stack di dispositivi non riesce una richiesta di IRP_MN_START_DEVICE per il dispositivo.

Per la rimozione di un dispositivo ordinato, il gestore PnP invia un IRP_MN_QUERY_REMOVE_DEVICE prima della rimozione di IRP. In questo caso, il dispositivo si trova nello stato di rimozione in sospeso quando arriva la rimozione di IRP. Per la rimozione di un dispositivo a sorpresa in Microsoft Windows 2000 o versione successiva, il gestore PnP invia un IRP_MN_SURPRISE_REMOVAL prima della rimozione di IRP. In questo caso, il dispositivo si trova nello stato rimosso a sorpresa quando arriva l'IRP di rimozione. I driver possono anche ricevere una rimozione di IRP prima dell'avvio di un dispositivo. In questo caso, il dispositivo si trova nello stato non avviato all'arrivo dell'IRP.

Il gestore PnP invia questo IRP al PASSIVE_LEVEL IRQL nel contesto di un thread di sistema.

Parametri di input

Nessuno

Parametri di output

Nessuno

Blocco dello stato I/O

Un driver deve impostare Irp-IoStatus.Status> su STATUS_SUCCESS. I driver non devono avere esito negativo per questo IRP.

Operazione

Questo IRP viene gestito prima dal driver nella parte superiore dello stack di dispositivi e quindi da ogni driver inferiore nello stack.

In risposta a questo IRP, i driver eseguono attività come l'accensione del dispositivo, la rimozione della rappresentazione software del dispositivo (oggetti dispositivo e così via) e il rilascio di tutte le risorse per il dispositivo.

Per altre informazioni sulla gestione di questo IRP, vedere Gestione di una richiesta di IRP_MN_REMOVE_DEVICE. Per informazioni generali sul supporto della rimozione dei dispositivi, vedere Rimozione di un dispositivo.

Invio di questo IRP

Riservato per l'utilizzo nel sistema. I driver non devono inviare questo IRP.

Se un driver del bus rileva che uno o più dispositivi figlio (PDO figlio) è stato fisicamente rimosso dal computer, il driver del bus chiama IoInvalidateDeviceRelations per segnalare la modifica al gestore PnP. Il gestore PnP invia quindi rimuovi irP per tutti i dispositivi scomparsi.

Requisiti

Intestazione

Wdm.h (include Wdm.h, Ntddk.h o Ntifs.h)

Vedi anche

IoInvalidateDeviceRelations

IoRegisterPlugPlayNotification

IRP_MN_CANCEL_REMOVE_DEVICE

IRP_MN_QUERY_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL