Compartir a través de


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.

Observaciones

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 provocar problemas sutiles del sistema 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, MmAllocatePagesForMdlExo MmAllocatePagesForMdl.

Para obtener más información sobre las MDL, vea Using MDLs.

Requisitos

Requisito Valor
encabezado de wdm.h (incluya Wdm.h)
irQL Cualquier nivel
reglas de cumplimiento de DDI MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf)