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

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

Observaciones

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;

Nota

Cambiar el contenido de la matriz puede provocar 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 los MDL, consulte Uso de MDL.

Requisitos

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