IRP_MN_QUERY_PNP_DEVICE_STATE
Le funzioni, i filtri e i driver del bus possono gestire questa richiesta.
Valore47
0x14
Codice principale
Data di invio
Il gestore PnP invia l'IRP dopo che i driver per un dispositivo restituiscono esito positivo dalla richiesta di IRP_MN_START_DEVICE inviata quando viene avviato un dispositivo. L'IRP non viene inviato in un avvio dopo un arresto per il ribilanciamento delle risorse. Il gestore PnP invia anche questo IRP quando un driver per il dispositivo chiama IoInvalidateDeviceState.
Il gestore PnP invia l'IRP in IRQL PASSIVE_LEVEL nel contesto di un thread arbitrario.
Parametri di input
Nessuno
Parametri di output
Restituito nel blocco di stato di I/O.
Blocco dello stato I/O
Un driver imposta Irp-IoStatus.Status> su STATUS_SUCCESS o su uno stato di errore appropriato, ad esempio STATUS_UNSUCCESSFUL.
In caso di esito positivo, un driver imposta Irp-IoStatus.Information> su una maschera PNP_DEVICE_STATE bit.
Se un driver di funzione o filtro non gestisce l'IRP, chiama IoSkipCurrentIrpStackLocation, non imposta una routine IoCompletion e passa l'IRP fino al driver successivo. Tale driver non deve modificare Irp-IoStatus> e non deve completare l'IRP.
Se un conducente del bus non gestisce questo IRP, lascia Irp-IoStatus.Status> come è e completa l'IRP.
Operazione
Questa IRP viene gestita prima dal driver nella parte superiore dello stack di dispositivi e quindi da ogni driver inferiore successivo nello stack.
Un driver gestisce questo IRP se contiene informazioni sullo stato PnP di un dispositivo. Un driver può impostare o cancellare i flag nella maschera di bit PNP_DEVICE_STATE. Se un altro driver ha impostato un PNP_DEVICE_STATE in Irp-IoStatus.Information>, un driver deve prestare attenzione a modificare i flag in tale maschera bit anziché sovrascrivere l'intera struttura.
Vedere Plug and Play per le regole generali per la gestione di irp secondari Plug and Play.
Invio di questo IRP
Riservato per l'utilizzo nel sistema. I driver non devono inviare questo IRP.
Requisiti
Intestazione |
Wdm.h (include Wdm.h, Ntddk.h o Ntifs.h) |