MmGetMdlPfnArray-Makro (wdm.h)
Das MmGetMdlPfnArray Makro gibt einen Zeiger an den Anfang des Arrays physischer Seitenzahlen zurück, die einer Speicherbeschreibungsliste (MDL) zugeordnet sind.
Syntax
PPFN_NUMBER MmGetMdlPfnArray(
_In_ PMDL Mdl
);
Parameter
Mdl
Ein Zeiger auf eine MDL.
Rückgabewert
MmGetMdlPfnArray gibt einen Zeiger an den Anfang des Arrays physischer Seitenzahlen zurück, die der MDL zugeordnet sind.
Bemerkungen
MmGetMdlPfnArray gibt einen Zeiger an den Anfang des Arrays physischer Seitenzahlen zurück, die der MDL zugeordnet sind.
Makrodefinition:
#define MmGetMdlPfnArray(Mdl) ((PPFN_NUMBER)(Mdl + 1))
Die Anzahl der Einträge im Array ist ADDRESS_AND_SIZE_TO_SPAN_PAGES(MmGetMdlVirtualAddress(Mdl), MmGetMdlByteCount(Mdl)).
Jedes Arrayelement ist ein ganzzahliger Wert vom Typ PFN_NUMBER, der in der Wdm.h-Headerdatei wie folgt definiert ist:
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
Das Ändern des Inhalts des Arrays kann zu subtilen Systemproblemen führen, die schwierig zu diagnostizieren sind. Es wird empfohlen, den Inhalt dieses Arrays nicht zu lesen oder zu ändern.
Bei ausgelagertem Speicher sind die Inhalte des Arrays nur für einen Puffer gültig, der mit MmProbeAndLockPagesgesperrt ist.
Für nicht seitenseitigen Pool sind die Inhalte des Arrays nur für eine MDL gültig, die mit MmBuildMdlForNonPagedPool, MmAllocatePagesForMdlExoder MmAllocatePagesForMdlaktualisiert wird.
Weitere Informationen zu MDLs finden Sie unter Verwenden von MDLs.
Anforderungen
Anforderung | Wert |
---|---|
Header- | wdm.h (include Wdm.h) |
IRQL- | Beliebige Ebene |
DDI-Complianceregeln | MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf) |