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)

Vedi anche

DispatchClose

IRP_MJ_CLEANUP

IRP_MJ_CREATE