IRP_MN_DISABLE_EVENTS
Tutti i driver WMI che registrano uno o più blocchi eventi devono gestire questo IRP. Un driver può gestire i provider di integrazione WMI chiamando WmiSystemControl o gestendo l'IRP stesso, come descritto in Gestione delle richieste WMI.
Se un driver chiama WmiSystemControl per gestire una richiesta di IRP_MN_DISABLE_EVENTS , WMI chiama a sua volta la routine DpWmiFunctionControl del driver.
Codice principale
Data di invio
WMI invia l'IRP per informare il driver che un consumer di dati non ha richiesto ulteriori notifiche di un evento.
WMI invia questo IRP in IRQL = PASSIVE_LEVEL in un contesto di thread arbitrario.
Parametri di input
Parameters.WMI.ProviderId punta all'oggetto dispositivo del driver che deve rispondere alla richiesta. Questo puntatore si trova nella posizione dello stack I/O del driver in IRP.
Parameters.WMI.DataPath punta a un GUID che identifica il blocco di eventi da disabilitare.
Parametri di output
Nessuno.
Blocco dello stato I/O
Se il driver gestisce l'IRP chiamando WmiSystemControl, WMI imposta Irp-IoStatus.Status e Irp-IoStatus.Information>> nel blocco di stato di I/O.
In caso contrario, il driver imposta Irp-IoStatus.Status> su STATUS_SUCCESS o su uno stato di errore appropriato, ad esempio quanto segue:
STATUS_WMI_GUID_NOT_FOUND
STATUS_INVALID_DEVICE_REQUEST
In caso di esito positivo, un driver imposta Irp-IoStatus.Information> su zero.
Operazione
Un driver può gestire i provider di integrazione WMI chiamando WmiSystemControl o gestendo l'IRP stesso, come descritto in Gestione delle richieste WMI.
Se un driver gestisce i irP WMI chiamando WmiSystemControl, tale routine chiama la routine DpWmiFunctionControl del driver o restituisce STATUS_SUCCESS se il driver non definisce la routine.
Se un driver gestisce una richiesta IRP_MN_DISABLE_EVENTS stessa, deve farlo solo se Parameters.WMI.ProviderId punta allo stesso oggetto dispositivo del puntatore passato al driver IoWMIRegistrationControl. In caso contrario, il driver deve inoltrare la richiesta al driver inferiore successivo.
Prima di gestire una richiesta, il driver deve determinare se Parameters.WMI.DataPath punta a un GUID supportato dal driver. In caso contrario, il driver deve avere esito negativo sull'IRP e restituire STATUS_WMI_GUID_NOT_FOUND.
Se il driver supporta il blocco eventi, disabilita l'evento per tutte le istanze di tale blocco.
Non è necessario che il driver verifichi se gli eventi sono già disabilitati per il blocco eventi perché WMI invia una singola richiesta di disabilitazione per tale blocco eventi quando l'ultimo consumer di dati disabilita l'evento. WMI non invierà un'altra richiesta di disabilitazione senza una richiesta di intervento per abilitare.
Per informazioni dettagliate sulla definizione di blocchi eventi, vedere Progettazione di blocchi di eventi e dati WMI.
Requisiti
Intestazione |
Wdm.h (include Wdm.h, Ntddk.h o Ntifs.h) |