Macro MmGetMdlPfnArray (wdm.h)
La macro MmGetMdlPfnArray retourne un pointeur vers le début du tableau des numéros de page physiques associés à une liste de descripteurs mémoire (MDL).
Syntaxe
PPFN_NUMBER MmGetMdlPfnArray(
_In_ PMDL Mdl
);
Paramètres
Mdl
Pointeur vers une MDL.
Valeur retournée
MmGetMdlPfnArray retourne un pointeur vers le début du tableau des numéros de page physiques associés à la MDL.
Remarques
MmGetMdlPfnArray retourne un pointeur vers le début du tableau des numéros de page physiques associés à la MDL.
Définition de macro :
#define MmGetMdlPfnArray(Mdl) ((PPFN_NUMBER)(Mdl + 1))
Le nombre d’entrées dans le tableau est ADDRESS_AND_SIZE_TO_SPAN_PAGES(MmGetMdlVirtualAddress(Mdl), MmGetMdlByteCount(Mdl)).
Chaque élément de tableau est une valeur entière de type PFN_NUMBER, qui est définie dans le fichier d’en-tête Wdm.h comme suit :
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
La modification du contenu du tableau peut entraîner des problèmes système subtils difficiles à diagnostiquer. Nous vous recommandons de ne pas lire ou modifier le contenu de ce tableau.
Pour la mémoire paginable, le contenu du tableau est valide uniquement pour une mémoire tampon verrouillée avec MmProbeAndLockPages.
Pour le pool sans pagination, le contenu du tableau est valide uniquement pour une MDL mise à jour avec MmBuildMdlForNonPagedPool, MmAllocatePagesForMdlEx ou MmAllocatePagesForMdll.
Pour plus d’informations sur les DLL, consultez Utilisation de MDL.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | wdm.h (include Wdm.h) |
IRQL | N’importe quel niveau |
Règles de conformité DDI | MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf) |