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。
要求
要求 | 值 |
---|---|
Header | wdm.h (包括 Wdm.h) |
IRQL | 任何级别 |
DDI 符合性规则 | MdlAfterReqCompletedIntIoctlA (kmdf) 、 MdlAfterReqCompletedIoctlA (kmdf) 、 MdlAfterReqCompletedReadA (kmdf) 、 MdlAfterReqCompletedWriteA (kmdf) |