IRP_MN_STOP_DEVICE

Todos os drivers PnP devem lidar com esse IRP.

Valor

0x04

Código principal

IRP_MJ_PNP

Quando enviado

O gerenciador de PnP envia esse IRP para interromper um dispositivo para que ele possa reconfigurar os recursos de hardware do dispositivo.

No Windows 2000 e em sistemas posteriores, o gerenciador PnP enviará esse IRP somente se um IRP_MN_QUERY_STOP_DEVICE anterior for concluído com êxito.

No Windows 98/Me, o gerenciador PnP também envia esse IRP quando um dispositivo está sendo desabilitado e quando uma pilha de dispositivos falha em uma solicitação de IRP_MN_START_DEVICE . Em casos de inicialização com falha, o gerenciador de PnP envia esse IRP sem uma solicitação de IRP_MN_QUERY_STOP_DEVICE anterior.

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.

Operação

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

Em resposta a esse IRP, os drivers do Windows 2000 e posteriores interrompem o dispositivo e liberam todos os recursos de hardware que estão sendo usados pelo dispositivo, como portas de E/S e interrupções.

No Windows 2000 e posterior, um IRP de parada é usado apenas para liberar os recursos de hardware de um dispositivo para que eles possam ser reconfigurados. Depois que os recursos forem reconfigurados, o dispositivo será reiniciado. Um IRP de parada não é um precursor de um IRP de remoção. Consulte Plug and Play para obter mais informações sobre a ordem na qual os IRPs PnP são enviados para dispositivos.

No Windows 98/Me, um IRP de parada também é usado após um início com falha e quando um dispositivo está sendo desabilitado. Os drivers WDM executados nesses sistemas operacionais devem parar o dispositivo, falhar qualquer E/S de entrada e desabilitar e desregistrar qualquer interface do modo de usuário.

Um driver não deve falhar nesse IRP. Se um driver não puder liberar os recursos de hardware do dispositivo, ele deverá falhar no IRP de parada de consulta anterior.

Consulte Parando um dispositivo para obter informações detalhadas sobre como lidar com a parada de IRPs.

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

IRP_MN_QUERY_STOP_DEVICE

IRP_MN_START_DEVICE

IoSetDeviceInterfaceState

IoRegisterDeviceInterface