Macro MmGetMdlPfnArray (wdm.h)
La macro mmGetMdlPfnArray retourne un pointeur vers le début du tableau de numéros de page physiques associés à une liste de descripteurs de mémoire (MDL).
PPFN_NUMBER MmGetMdlPfnArray(
_In_ PMDL Mdl
);
Mdl
Pointeur vers un MDL.
MmGetMdlPfnArray retourne un pointeur vers le début du tableau de numéros de page physiques associés au MDL.
MmGetMdlPfnArray retourne un pointeur vers le début du tableau de numéros de page physiques associés au 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 de 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 non paginé, le contenu du tableau n’est valide que pour un MDL mis à jour avec MmBuildMdlForNonPagedPool, MmAllocatePagesForMdlExou MmAllocatePagesForMdl.
Pour plus d’informations sur les DLL, consultez Utilisation de MDLs.
Exigence | Valeur |
---|---|
d’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) |