Función MmUnlockPagableImageSection (wdm.h)
El MmUnlockPagableImageSection rutina libera una sección de datos de controladores o código de controlador, bloqueados previamente en el espacio del sistema con MmLockPagableCodeSection, MmLockPagableDataSection o MmLockPagableSectionByHandle, por lo que la sección se puede volver a paginar.
Sintaxis
void MmUnlockPagableImageSection(
[in] PVOID ImageSectionHandle
);
Parámetros
[in] ImageSectionHandle
Especifica el identificador devuelto por una llamada a MmLockPagableCodeSection o MmLockPagableDataSection.
Valor devuelto
Ninguno
Observaciones
El identificador de la sección paginable de un controlador no debe liberarse si el controlador tiene irP pendientes en sus colas de dispositivos o colas internas. Una llamada a MmUnlockPagableImageSection restaura la paginabilidad de esa sección completa cuando no hay más referencias al identificador de esa sección.
El administrador de memoria mantiene el recuento de referencias en el identificador de una sección. Una sección paginable solo está disponible para paginarse cuando el recuento de referencias es cero. Cada solicitud de bloqueo incrementa el recuento; cada solicitud de desbloqueo disminuye el recuento. Un controlador debe desbloquear una sección tantas veces como bloquea una sección para que la sección esté disponible para estar paginada.
Un identificador siempre es válido, independientemente del recuento. Si el recuento de un identificador es cero y se realiza una llamada a MmLockPagableSectionByHandle, el recuento se establece en uno y, si la sección se ha paginado, se paginará en .
En la mayoría de los casos, se llama a MmUnlockPagableImageSection antes de que se rutina de descarga de un controlador. Es decir, es probable que un controlador con una sección paginable tenga su dispatchClose o dispatchShutdown llamada rutinaria MmUnlockPagableImageSection antes de llamar a su rutina De descarga . Sin embargo, se debe tener cuidado en los controladores descargables para liberar cualquier sección paginable antes de que el propio controlador se descargue del sistema.
Para obtener más información sobre la paginación de código y los datos, vea Hacer que los controladores se puedan paginar.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows 2000. |
de la plataforma de destino de | Universal |
encabezado de | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | <=APC_LEVEL |
reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), IrqlMmApcLte(wdm) |