Função MmUnlockPagableImageSection (wdm.h)

A rotina MmUnlockPagableImageSection libera uma seção de código de driver ou dados de driver, anteriormente bloqueados no espaço do sistema com MmLockPagableCodeSection, MmLockPagableDataSection ou MmLockPagableSectionByHandle, para que a seção possa ser paginada novamente.

Sintaxe

void MmUnlockPagableImageSection(
  [in] PVOID ImageSectionHandle
);

Parâmetros

[in] ImageSectionHandle

Especifica o identificador retornado por uma chamada para MmLockPagableCodeSection ou MmLockPagableDataSection.

Retornar valor

Nenhum

Comentários

O identificador da seção paginável de um driver não deverá ser liberado se o driver tiver algum IRPs pendente em suas filas de dispositivos ou filas internas. Uma chamada para MmUnlockPagableImageSection restaura a pageability de toda essa seção quando não há mais referências ao identificador dessa seção.

O gerenciador de memória mantém a contagem de referência no identificador para uma seção. Uma seção paginável só está disponível para ser paginada quando a contagem de referência é zero. Cada solicitação de bloqueio incrementa a contagem; cada solicitação de desbloqueio diminui a contagem. Um driver deve desbloquear uma seção quantas vezes bloquear uma seção para disponibilizar a seção a ser paginada.

Um identificador é sempre válido, independentemente da contagem. Se a contagem em um identificador for zero e uma chamada for feita para MmLockPagableSectionByHandle, a contagem será definida como uma e, se a seção tiver sido paginada, ela será paginada.

Na maioria dos casos, MmUnlockPagableImageSection é chamado antes da rotina de descarregamento de um driver. Ou seja, um driver com uma seção paginável provavelmente terá sua chamada de rotina DispatchClose e/ou DispatchShutdownmmUnlockPagableImageSection antes que sua rotina de descarregamento seja chamada. No entanto, deve-se tomar cuidado em drivers descarregados para liberar qualquer seção paginável antes que o próprio driver seja descarregado do sistema.

Para obter mais informações sobre o código e os dados de paginação, consulte Tornando os drivers pagináveis.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlMmApcLte(wdm)

Confira também

MmLockPagableCodeSection

MmLockPagableDataSection

MmLockPagableSectionByHandle

MmPageEntireDriver

MmResetDriverPaging