MmUnlockPagableImageSection, fonction (wdm.h)
La routine MmUnlockPagableImageSection libère une section de code de pilote ou de données de pilote, précédemment verrouillée dans l’espace système avec MmLockPagableCodeSection, MmLockPagableDataSection ou MmLockPagableSectionByHandle, afin que la section puisse être paginée à nouveau.
Syntaxe
void MmUnlockPagableImageSection(
[in] PVOID ImageSectionHandle
);
Paramètres
[in] ImageSectionHandle
Spécifie le handle retourné par un appel à MmLockPagableCodeSection ou MmLockPagableDataSection.
Valeur de retour
Aucun
Remarques
Le handle de la section paginable d’un pilote ne doit pas être libéré si le pilote a des adresses IRP en attente dans sa ou ses files d’attente internes. Un appel à MmUnlockPagableImageSection restaure la paginabilité de cette section entière lorsqu’il n’y a plus de références au handle pour cette section.
Le gestionnaire de mémoire conserve le nombre de références sur le handle vers une section. Une section paginable est disponible uniquement pour être paginée lorsque le nombre de références est égal à zéro. Chaque demande de verrouillage incrémente le nombre ; chaque demande de déverrouillage décrémente le nombre. Un pilote doit déverrouiller une section autant de fois qu’elle verrouille une section pour rendre la section disponible pour être paginée.
Un handle est toujours valide, quel que soit le nombre. Si le nombre sur un handle est égal à zéro et qu’un appel est effectué pour MmLockPagableSectionByHandle, le nombre est défini sur un, et si la section a été paginée, elle sera paginée.
Dans la plupart des cas, MmUnlockPagableImageSection est appelée avant la routine Décharger du pilote. Autrement dit, un pilote avec une section paginable est susceptible d’avoir son DispatchClose et/ou DispatchShutdown appel de routine MmUnlockPagableImageSection avant son routine de déchargement est appelée. Toutefois, vous devez prendre soin de charger des pilotes déchargés pour libérer toute section paginable avant que le pilote lui-même ne soit déchargé du système.
Pour plus d’informations sur la pagination du code et des données, consultez Rendre les pilotes paginables.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 2000. |
plateforme cible | Universel |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |
règles de conformité DDI | HwStorPortProhibitedDDIs(storport), IrqlMmApcLte(wdm) |