Freigeben über


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)