MmGetMdlPfnArray 宏 (wdm.h)
MmGetMdlPfnArray 宏返回指向与内存描述符列表(MDL)关联的物理页码数组的开头的指针。
语法
PPFN_NUMBER MmGetMdlPfnArray(
_In_ PMDL Mdl
);
参数
Mdl
指向 MDL 的指针。
返回值
MmGetMdlPfnArray 返回指向与 MDL 关联的物理页码数组的开头的指针。
言论
MmGetMdlPfnArray 返回指向与 MDL 关联的物理页码数组的开头的指针。
宏定义:
#define MmGetMdlPfnArray(Mdl) ((PPFN_NUMBER)(Mdl + 1))
数组中的条目数是 ADDRESS_AND_SIZE_TO_SPAN_PAGES(mmGetMdlVirtualAddress(Mdl),mmGetMdlByteCount(Mdl))。
每个数组元素都是PFN_NUMBER类型的整数值,在 Wdm.h 头文件中定义,如下所示:
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
更改数组的内容可能会导致难以诊断的微妙系统问题。 建议不要读取或更改此数组的内容。
对于可分页内存,数组的内容仅对锁定的缓冲区有效,MmProbeAndLockPages。
对于非分页池,数组的内容仅适用于使用 MmBuildMdlForNonPagedPool、MmAllocatePagesForMdlEx或 mmAllocatePagesForMdl更新的 MDL。
有关 MDL 的详细信息,请参阅 使用 MDL。
要求
要求 | 价值 |
---|---|
标头 | wdm.h (包括 Wdm.h) |
IRQL | 任何级别 |
DDI 符合性规则 | MdlAfterReqCompletedIntIoctlA(kmdf),MdlAfterReqCompletedIoctlA(kmdf),MdlAfterReqCompletedReadA(kmdf),MdlAfterReqCompletedWriteA(kmdf) |