IRP_MJ_CLOSE
Cada controlador debe controlar las solicitudes de cierre en una rutina DispatchClose , con la posible excepción de un controlador cuyo dispositivo no se puede deshabilitar o quitar de la máquina sin bajar el sistema. Un controlador de disco cuyo dispositivo contiene el archivo de página del sistema es un ejemplo de este controlador. Tenga en cuenta que el controlador de este tipo de dispositivo tampoco se puede descargar dinámicamente.
Cuándo se envió
La recepción de esta solicitud indica que se ha cerrado y liberado el último identificador del objeto de archivo asociado al objeto de dispositivo de destino. Todas las solicitudes de E/S pendientes se han completado o cancelado.
Parámetros de entrada
Ninguno
Parámetros de salida
Ninguno
Operación
Muchos controladores intermedios y de dispositivo simplemente establecen STATUS_SUCCESS en el bloque de estado de E/S del IRP y completan la solicitud de cierre. Sin embargo, lo que hace un controlador determinado al recibir una solicitud de cierre depende del diseño del controlador. En general, un controlador debe deshacer las acciones que realice al recibir la solicitud de IRP_MJ_CREATE . Los controladores de dispositivo cuyos objetos de dispositivo son exclusivos, como un controlador serie, también pueden restablecer el hardware al recibir una solicitud de cierre.
La solicitud IRP_MJ_CLOSE no se envía necesariamente en el contexto del proceso que cerró el identificador de objeto de archivo. Si el controlador debe liberar recursos específicos del proceso, como la memoria del usuario, que el controlador ha bloqueado o asignado previamente, debe hacerlo en respuesta a una solicitud de IRP_MJ_CLEANUP .
La solicitud de IRP_MJ_CLOSE siempre se enviará en PASSIVE_LEVEL.
Requisitos
Encabezado |
Wdm.h (incluya Wdm.h, Ntddk.h o Ntifs.h) |