IRP_MJ_CLOSE
Ogni driver deve gestire le richieste di chiusura in una routine DispatchClose , con l'eccezione possibile di un driver il cui dispositivo non può essere disabilitato o rimosso dal computer senza arrestare il sistema. Un driver su disco il cui dispositivo contiene il file di pagina di sistema è un esempio di tale driver. Si noti che il driver di un dispositivo di questo tipo non può essere scaricato in modo dinamico.
Data di invio
La ricezione di questa richiesta indica che l'ultimo handle dell'oggetto file associato all'oggetto dispositivo di destinazione è stato chiuso e rilasciato. Tutte le richieste di I/O in sospeso sono state completate o annullate.
Parametri di input
Nessuno
Parametri di output
Nessuno
Operazione
Molti driver di dispositivo e intermedi impostano semplicemente STATUS_SUCCESS nel blocco di stato di I/O dell'IRP e completano la richiesta di chiusura. Tuttavia, ciò che un determinato conducente esegue alla ricezione di una richiesta di chiusura dipende dalla progettazione del conducente. In generale, un driver deve annullare le azioni che esegue alla ricezione della richiesta di IRP_MJ_CREATE . I driver di dispositivo i cui oggetti dispositivo sono esclusivi, ad esempio un driver seriale, possono anche reimpostare l'hardware alla ricezione di una richiesta di chiusura.
La richiesta di IRP_MJ_CLOSE non viene necessariamente inviata nel contesto del processo che ha chiuso l'handle dell'oggetto file. Se il driver deve rilasciare risorse specifiche del processo, ad esempio la memoria dell'utente, bloccata o mappata in precedenza dal driver, deve farlo in risposta a una richiesta di IRP_MJ_CLEANUP .
La richiesta di IRP_MJ_CLOSE verrà sempre inviata al PASSIVE_LEVEL.
Requisiti
Intestazione |
Wdm.h (include Wdm.h, Ntddk.h o Ntifs.h) |