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_PAGESmmGetMdlVirtualAddressMdl),mmGetMdlByteCountMdl))。

每个数组元素都是PFN_NUMBER类型的整数值,在 Wdm.h 头文件中定义,如下所示:

typedef ULONG PFN_NUMBER, *PPFN_NUMBER;

更改数组的内容可能会导致难以诊断的微妙系统问题。 建议不要读取或更改此数组的内容。

对于可分页内存,数组的内容仅对锁定的缓冲区有效,MmProbeAndLockPages

对于非分页池,数组的内容仅适用于使用 MmBuildMdlForNonPagedPoolMmAllocatePagesForMdlExmmAllocatePagesForMdl更新的 MDL。

有关 MDL 的详细信息,请参阅 使用 MDL

要求

要求 价值
标头 wdm.h (包括 Wdm.h)
IRQL 任何级别
DDI 符合性规则 MdlAfterReqCompletedIntIoctlA(kmdf)MdlAfterReqCompletedIoctlA(kmdf)MdlAfterReqCompletedReadA(kmdf)MdlAfterReqCompletedWriteA(kmdf)