次の方法で共有


IDebugDataSpaces3::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 ソロモンと Mark Russinovich による Microsoft Windows Internals を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー dbgeng.h (Dbgeng.h を含む)