Share via


IRP_MJ_CLEANUP

Los controladores que mantienen información de contexto específica del proceso deben controlar las solicitudes de limpieza en las rutinas DispatchCleanup .

Cuándo se envió

La recepción de esta solicitud indica que se ha cerrado el último identificador de un objeto de archivo asociado al objeto de dispositivo de destino (pero, debido a solicitudes de E/S pendientes, es posible que no se hayan liberado).

Parámetros de entrada

Ninguno

Parámetros de salida

None

Operación

Este IRP se envía en el contexto del proceso que cerró el identificador del objeto de archivo. Por lo tanto, el controlador debe liberar recursos específicos del proceso, como la memoria del usuario, que el controlador ha bloqueado o asignado previamente.

Si los objetos de dispositivo del controlador se configuraron como exclusivos, de modo que solo un único subproceso pueda usar el dispositivo a la vez, el controlador debe completar cada IRP que esté actualmente en cola en el objeto de dispositivo de destino y establecer STATUS_CANCELLED en cada bloque de estado de E/S de IRP.

De lo contrario, el controlador debe cancelar y completar solo los IRP actualmente en cola que están asociados al identificador de objeto de archivo que se está liberando. (Un puntero al objeto de archivo se encuentra en el miembro FileObject del IO_STACK_LOCATION del controlador del IRP). Después de cancelar estos IRP en cola, el controlador completa el IRP de limpieza y establece STATUS_SUCCESS en su bloque de estado de E/S.

Para obtener más información sobre cómo controlar esta solicitud, vea DispatchCleanup Routines.

Requisitos

Encabezado

Wdm.h (incluya Wdm.h, Ntddk.h o Ntifs.h)

Consulte también

DispatchCleanup

IO_STACK_LOCATION

IRP_MJ_CLOSE