Lire en anglais

Partager via


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

Syntaxe

C++
PPFN_NUMBER MmGetMdlPfnArray(
  _In_ PMDL Mdl
);

Paramètres

Mdl

Pointeur vers un MDL.

Valeur de retour

MmGetMdlPfnArray retourne un pointeur vers le début du tableau de numéros de page physiques associés au MDL.

Remarques

MmGetMdlPfnArray retourne un pointeur vers le début du tableau de numéros de page physiques associés au MDL.

Définition de macro :

C++
#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 :

C++
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.

Exigences

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)