Share via


IRP_MN_REMOVE_DEVICE

Todos os drivers PnP devem lidar com esse IRP.

Valor

0x02

Código principal

IRP_MJ_PNP

Quando enviado

O gerenciador PnP usa esse IRP para direcionar drivers para remover a representação de software de um dispositivo (objetos de dispositivo e assim por diante). O gerenciador PnP envia esse IRP quando um dispositivo é removido de forma ordenada (por exemplo, iniciado por um usuário no programa Desplugar ou Ejetar Hardware), de surpresa (um usuário efetua pull do dispositivo de seu slot sem aviso prévio) ou quando o usuário solicita a atualização dos drivers.

No Windows 2000 e em sistemas posteriores, o gerenciador PnP também enviará esse IRP se um dos drivers na pilha do dispositivo falhar em uma solicitação de IRP_MN_START_DEVICE para o dispositivo.

Para uma remoção ordenada do dispositivo, o gerenciador de PnP envia uma IRP_MN_QUERY_REMOVE_DEVICE antes da remoção do IRP. Nesse caso, o dispositivo está no estado de remoção pendente quando o IRP de remoção chega. Para uma remoção de dispositivo surpresa no Microsoft Windows 2000 ou posterior, o gerenciador de PnP envia um IRP_MN_SURPRISE_REMOVAL antes da remoção do IRP. Nesse caso, o dispositivo está no estado de remoção surpresa quando o IRP de remoção chega. Os drivers também podem receber uma IRP de remoção antes de um dispositivo ser iniciado. Nesse caso, o dispositivo está no estado não iniciado quando o IRP chega.

O gerenciador PnP envia esse IRP em PASSIVE_LEVEL IRQL no contexto de um thread do sistema.

Parâmetros de Entrada

Nenhum

Parâmetros de saída

Nenhum

Bloco de Status de E/S

Um driver deve definir Irp-IoStatus.Status> como STATUS_SUCCESS. Os drivers não devem falhar nesse IRP.

Operação

Esse IRP é manipulado primeiro pelo driver na parte superior da pilha do dispositivo e, em seguida, por cada driver inferior na pilha.

Em resposta a esse IRP, os drivers executam tarefas como desligar o dispositivo, remover a representação de software do dispositivo (objetos de dispositivo e assim por diante) e liberar todos os recursos para o dispositivo.

Para obter mais informações sobre como lidar com esse IRP, consulte Manipulando uma solicitação de IRP_MN_REMOVE_DEVICE. Para obter informações gerais sobre como dar suporte à remoção de dispositivo, consulte Removendo um dispositivo.

Enviando este IRP

Reservado para uso do sistema. Os drivers não devem enviar este IRP.

Se um motorista de ônibus detectar que um (ou mais) de seus dispositivos filho (PDOs filho) foi fisicamente removido do computador, o motorista do ônibus chamará IoInvalidateDeviceRelations para relatar a alteração para o gerenciador de PnP. Em seguida, o gerenciador PnP envia IRPs de remoção para todos os dispositivos que desapareceram.

Requisitos

parâmetro

Wdm.h (inclua Wdm.h, Ntddk.h ou Ntifs.h)

Confira também

IoInvalidateDeviceRelations

IoRegisterPlugPlayNotification

IRP_MN_CANCEL_REMOVE_DEVICE

IRP_MN_QUERY_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL