IDebugDataSpaces2::GetVirtualTranslationPhysicalOffsets 方法 (dbgeng.h)

GetVirtualTranslationPhysicalOffsets 方法返回分页层次结构不同级别的系统分页结构的物理地址。

语法

HRESULT GetVirtualTranslationPhysicalOffsets(
  [in]            ULONG64  Virtual,
  [out, optional] PULONG64 Offsets,
  [in]            ULONG    OffsetsSize,
  [out, optional] PULONG   Levels
);

参数

[in] Virtual

指定要转换的目标虚拟地址空间中的位置。

[out, optional] Offsets

接收系统分页结构的物理地址。 如果设置为 NULL,则不会返回此信息。

[in] OffsetsSize

指定数组 Offsets 保留的元素数。 这是将返回的最大地址数。

[out, optional] Levels

接收指定地址的分页层次结构中的级别数。 如果为 NULL,则不返回此信息。

返回值

此方法还可以返回错误值。 有关更多详细信息 ,请参阅返回值

返回代码 说明
S_OK
方法成功。
HRESULT_FROM_NT (STATUS_NO_PAGEFILE)
找不到包含指定地址的物理页。

注解

此方法仅在内核模式调试中可用。

将虚拟地址转换为物理地址需要 Windows 走下分页层次结构。 在每个级别,它从物理内存中读取分页信息。 此方法返回这些物理页的偏移量。 对于不同的地址,分页层次结构中的级别数可能不同。

层次结构最后一个级别的地址是对应于指定虚拟地址的物理地址。 这是 VirtualToPhysical 将返回的内容。

有关如何将虚拟地址转换为物理地址的详细信息,请参阅 David Solomon 和 Mark Russinovich 的 Microsoft Windows Internals

要求

要求
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h)