Função MmUnlockPagableImageSection (wdm.h)
A rotina MmUnlockPagableImageSection libera uma seção de dados de driver ou código do driver, previamente bloqueada no espaço do sistema com MmLockPagableCodeSection, MmLockPagableDataSection ou MmLockPagableSectionByHandle, para que a seção possa ser excluída novamente.
Sintaxe
void MmUnlockPagableImageSection(
[in] PVOID ImageSectionHandle
);
Parâmetros
[in] ImageSectionHandle
Especifica o identificador retornado por uma chamada para MmLockPagableCodeSection ou MmLockPagableDataSection.
Valor de retorno
Nenhum
Observações
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 capacidade de página 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 for 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 excluída, ela será paginada.
Na maioria dos casos, MmUnlockPagableImageSection é chamado antes da rotina de descarregar de do driver. Ou seja, é provável que um driver com uma seção paginável tenha seu DispatchClose e/ou DispatchShutdown chamada de rotina MmUnlockPagableImageSection 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 |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 2000. |
da Plataforma de Destino | Universal |
cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |
regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), IrqlMmApcLte(wdm) |