Partilhar via


IRP_MN_CANCEL_REMOVE_DEVICE

Todos os drivers PnP devem lidar com esse IRP.

Valor

0x03

Código principal

IRP_MJ_PNP

Quando enviado

O gerenciador de PnP envia esse IRP para informar aos drivers de um dispositivo que o dispositivo não será removido.

O gerenciador PnP envia esse IRP no IRQL PASSIVE_LEVEL 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 para esse IRP. Se um driver falhar nesse IRP, o dispositivo será deixado em um estado inconsistente.

Operação

Esse IRP deve ser tratado primeiro pelo motorista do barramento pai de um dispositivo e, em seguida, por cada driver mais alto na pilha do dispositivo.

Em resposta a esse IRP, os drivers retornam o dispositivo ao estado em que ele estava antes de receber a solicitação de IRP_MN_QUERY_REMOVE_DEVICE .

Se o dispositivo já estiver iniciado quando o driver receber esse IRP, o driver simplesmente definirá status para êxito e passará o IRP para o próximo driver (ou concluirá o IRP se o motorista for um motorista de ônibus). Para esse IRP de cancelamento/remoção, um driver de função ou filtro não precisa definir uma rotina de conclusão. O dispositivo pode não estar no estado de remoção pendente, pois, por exemplo, o driver falhou no IRP_MN_QUERY_REMOVE_DEVICE anterior.

O gerenciador PnP chama eventCategoryTargetDeviceChange retornos de chamada de notificação com GUID_TARGET_DEVICE_REMOVE_CANCELLED após a conclusão da solicitação de IRP_MN_CANCEL_REMOVE_DEVICE . Esses retornos de chamada foram registrados no dispositivo chamando IoRegisterPlugPlayNotification. O gerenciador PnP também chama todos os componentes do modo de usuário registrados para notificação no dispositivo chamando RegisterDeviceNotification.

Se um sistema de arquivos estiver montado no dispositivo, ele deverá desfazer todas as operações que fez em resposta à notificação de remoção de consulta.

Consulte Plug and Play para obter informações detalhadas sobre como lidar com a remoção de IRPs e para obter as regras gerais para lidar com todos os IRPs menores Plug and Play.

Enviando este IRP

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

Requisitos

parâmetro

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

Confira também

IoRegisterPlugPlayNotification

IRP_MN_QUERY_REMOVE_DEVICE