Compartir a través de


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)

Consulte también

MmLockPagableCodeSection

MmLockPagableDataSection

mmLockPagableSectionByHandle

MmPageEntireDriver

MmResetDriverPaging