Macro MmGetMdlPfnArray (wdm.h)

La macro MmGetMdlPfnArray devuelve un puntero al principio de la matriz de números de página físicos asociados a una lista de descriptores de memoria (MDL).

Sintaxis

PPFN_NUMBER MmGetMdlPfnArray(
  _In_ PMDL Mdl
);

Parámetros

Mdl

Puntero a un MDL.

Valor devuelto

MmGetMdlPfnArray devuelve un puntero al principio de la matriz de números de página físicos asociados a MDL.

Comentarios

MmGetMdlPfnArray devuelve un puntero al principio de la matriz de números de página físicos asociados a MDL.

Definición de macro:

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

El número de entradas de la matriz es ADDRESS_AND_SIZE_TO_SPAN_PAGES(MmGetMdlVirtualAddress(Mdl), MmGetMdlByteCount(Mdl)).

Cada elemento de matriz es un valor entero de tipo PFN_NUMBER, que se define en el archivo de encabezado Wdm.h de la siguiente manera:

typedef ULONG PFN_NUMBER, *PPFN_NUMBER;

Cambiar el contenido de la matriz puede causar problemas sutiles del sistema que son difíciles de diagnosticar. Se recomienda no leer ni cambiar el contenido de esta matriz.

Para la memoria paginable, el contenido de la matriz solo es válido para un búfer bloqueado con MmProbeAndLockPages.

En el caso del grupo no paginado, el contenido de la matriz solo es válido para una MDL actualizada con MmBuildMdlForNonPagedPool, MmAllocatePagesForMdlEx o MmAllocatePagesForMdl.

Para obtener más información sobre las MDL, consulte Uso de MDL.

Requisitos

Requisito Valor
Header wdm.h (incluya Wdm.h)
IRQL Cualquier nivel
Reglas de cumplimiento de DDI MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)