Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
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 :
#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_PTR 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) |