Condividi tramite


Macro MmGetMdlPfnArray (wdm.h)

La macro MmGetMdlPfnArray restituisce un puntatore all'inizio della matrice di numeri di pagina fisici associati a un elenco di descrittori di memoria (MDL).

Sintassi

PPFN_NUMBER MmGetMdlPfnArray(
  _In_ PMDL Mdl
);

Parametri

Mdl

Puntatore a un MDL.

Valore restituito

MmGetMdlPfnArray restituisce un puntatore all'inizio della matrice di numeri di pagina fisici associati al file MDL.

Commenti

MmGetMdlPfnArray restituisce un puntatore all'inizio della matrice di numeri di pagina fisici associati al file MDL.

Definizione macro:

#define MmGetMdlPfnArray(Mdl) ((PPFN_NUMBER)(Mdl + 1))

Il numero di voci nella matrice è ADDRESS_AND_SIZE_TO_SPAN_PAGES(MmGetMdlVirtualAddress(Mdl), MmGetMdlByteCount(Mdl)).

Ogni elemento matrice è un valore intero di tipo PFN_NUMBER, definito nel file di intestazione Wdm.h come indicato di seguito:

typedef ULONG PFN_NUMBER, *PPFN_NUMBER;

La modifica del contenuto della matrice può causare piccoli problemi di sistema difficili da diagnosticare. È consigliabile non leggere o modificare il contenuto di questa matrice.

Per la memoria impaginabile, il contenuto della matrice è valido solo per un buffer bloccato con MmProbeAndLockPages.

Per il pool non di pagine, il contenuto della matrice è valido solo per un MDL aggiornato con MmBuildMdlForNonPagedPool, MmAllocatePagesForMdlEx o MmAllocatePagesForMdl.

Per altre informazioni sugli mdls, vedere Using MDLs.For more information about MDLs, see Using MDLs.

Requisiti

Requisito Valore
Intestazione wdm.h (include Wdm.h)
IRQL Qualsiasi livello
Regole di conformità DDI MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)