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