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 all'MDL.

Commenti

Definizione della 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 array è 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 problemi di sistema sottili che sono 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 a pagina, il contenuto della matrice è valido solo per un MDL aggiornato con MmBuildMdlForNonPagedPool, MmAllocatePagesForMdlEx o MmAllocatePagesForMdl.

Per altre informazioni sugli MDLs, vedere Uso di 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)