Freigeben über


MmGetMdlPfnArray-Makro (wdm.h)

Das MmGetMdlPfnArray-Makro gibt einen Zeiger auf den Anfang des Arrays physischer Seitenzahlen zurück, die einer Speicherdeskriptorliste (Memory Descriptor List, MDL) zugeordnet sind.

Syntax

PPFN_NUMBER MmGetMdlPfnArray(
  _In_ PMDL Mdl
);

Parameter

Mdl

Ein Zeiger auf eine MDL.

Rückgabewert

MmGetMdlPfnArray gibt einen Zeiger auf den Anfang des Arrays physischer Seitenzahlen zurück, die der MDL zugeordnet sind.

Hinweise

MmGetMdlPfnArray gibt einen Zeiger auf 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 wird:

typedef ULONG PFN_NUMBER, *PPFN_NUMBER;

Eine Änderung des Arrayinhalts kann zu subtilen Systemproblemen führen, die schwer zu diagnostizieren sind. Es wird empfohlen, den Inhalt dieses Arrays nicht zu lesen oder zu ändern.

Für ausgelagerten Speicher ist der Inhalt des Arrays nur für einen Puffer gültig, der mit MmProbeAndLockPages gesperrt ist.

Für nicht auslagerte Pools sind die Inhalte des Arrays nur für eine MDL gültig, die mit MmBuildMdlForNonPagedPool, MmAllocatePagesForMdlEx oder MmAllocatePagesForMdl aktualisiert wurde.

Weitere Informationen zu MDLs finden Sie unter Verwenden von MDLs.

Anforderungen

Anforderung Wert
Header wdm.h (wdm.h einschließen)
IRQL Beliebige Ebene
DDI-Complianceregeln MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)