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) |