IRP_MN_QUERY_PNP_DEVICE_STATE
Os drivers de função, filtro e barramento podem lidar com essa solicitação.
Valor47
0x14
Código principal
Quando enviado
O gerenciador PnP envia esse IRP depois que os drivers de um dispositivo retornam êxito da solicitação de IRP_MN_START_DEVICE enviada quando um dispositivo é iniciado pela primeira vez. Esse IRP não é enviado em um início após uma parada para rebalanceamento de recursos. O gerenciador PnP também envia esse IRP quando um driver para o dispositivo chama IoInvalidateDeviceState.
O gerenciador PnP envia esse IRP em PASSIVE_LEVEL IRQL no contexto de um thread arbitrário.
Parâmetros de Entrada
Nenhum
Parâmetros de saída
Retornado no bloco status de E/S.
Bloco de Status de E/S
Um driver define Irp-IoStatus.Status> como STATUS_SUCCESS ou para um status de erro apropriado, como STATUS_UNSUCCESSFUL.
Em caso de êxito, um driver define Irp-IoStatus.Information> como uma máscara de bits PNP_DEVICE_STATE.
Se um driver de função ou filtro não manipular esse IRP, ele chamará IoSkipCurrentIrpStackLocation, não definirá uma rotina IoCompletion e passará o IRP para o próximo driver. Esse driver não deve modificar Irp-IoStatus> e não deve concluir o IRP.
Se um motorista de ônibus não manipular esse IRP, ele deixará Irp-IoStatus.Status> como está e concluirá o IRP.
Operação
Esse IRP é manipulado primeiro pelo driver na parte superior da pilha do dispositivo e, em seguida, por cada próximo driver inferior na pilha.
Um driver manipulará esse IRP se ele tiver informações sobre o estado PnP de um dispositivo. Um driver pode definir ou limpar os sinalizadores na máscara de bits PNP_DEVICE_STATE. Se outro driver tiver definido um PNP_DEVICE_STATE em Irp-IoStatus.Information>, um driver deverá ter cuidado para modificar os sinalizadores nessa máscara de bits em vez de substituir toda a estrutura.
Consulte Plug and Play para obter as regras gerais para lidar com Plug and Play IRPs menores.
Enviando este IRP
Reservado para uso do sistema. Os drivers não devem enviar este IRP.
Requisitos
parâmetro |
Wdm.h (inclua Wdm.h, Ntddk.h ou Ntifs.h) |