IRP_MJ_CLEANUP
I driver che gestiscono informazioni di contesto specifiche del processo devono gestire le richieste di pulizia nelle routine DispatchCleanup .
Data di invio
La ricezione di questa richiesta indica che l'ultimo handle per un oggetto file associato all'oggetto dispositivo di destinazione è stato chiuso (ma, a causa di richieste di I/O in sospeso, potrebbe non essere stato rilasciato).
Parametri di input
Nessuno
Parametri di output
Nessuno
Operazione
Questo protocollo IRP viene inviato nel contesto del processo che ha chiuso l'handle dell'oggetto file. Di conseguenza, il driver deve rilasciare risorse specifiche del processo, ad esempio la memoria dell'utente, bloccata o mappata in precedenza.
Se gli oggetti dispositivo del driver sono stati configurati come esclusivi, in modo che solo un singolo thread possa usare il dispositivo alla volta, il driver deve completare ogni IRP attualmente accodato all'oggetto dispositivo di destinazione e impostare STATUS_CANCELLED nel blocco di stato di I/O di ogni IRP.
In caso contrario, il driver deve annullare e completare solo i runtime di integrazione attualmente in coda associati all'handle dell'oggetto file che viene rilasciato. Un puntatore all'oggetto file si trova nel membro FileObject del IO_STACK_LOCATION del driver dell'IRP. Dopo aver annullato questi IRP in coda, il driver completa l'IRP di pulizia e imposta STATUS_SUCCESS nel relativo blocco di stato di I/O.
Per altre informazioni sulla gestione di questa richiesta, vedere DispatchCleanup Routines.For more information about handling this request, see DispatchCleanup Routines.
Requisiti
Intestazione |
Wdm.h (include Wdm.h, Ntddk.h o Ntifs.h) |