Función MmUnlockPagableImageSection (wdm.h)

La rutina MmUnlockPagableImageSection libera una sección del código de controlador o los datos del 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

None

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 capacidad de paginación 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 del identificador en 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 que se pueda paginar.

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 la mayoría de los casos, se llama a MmUnlockPagableImageSection antes de la rutina Unload de un controlador. Es decir, es probable que un controlador con una sección paginable tenga su rutina DispatchClose o DispatchShutdown llamada a MmUnlockPagableImageSection antes de llamar a su rutina Unload . 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 el código de paginación y los datos, vea Hacer que los controladores sean paginables.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <=APC_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), IrqlMmApcLte(wdm)

Consulte también

MmLockPagableCodeSection

MmLockPagableDataSection

MmLockPagableSectionByHandle

MmPageEntireDriver

MmResetDriverPaging