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) |