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