!pte

(その !pte 拡張は、指定されたアドレスのページテーブルエントリ(PTE)とページディレクトリエントリ(PDE)を表示する。

構文

!pte VirtualAddress 
!pte PTE 
!pte LiteralAddress 1 

パラメーター

VirtualAddress
ページ・テーブルが必要な仮想アドレスを指定します。

PTE
実際のPTEのアドレスを指定する。

LiteralAddress **** 1
実際のPTEまたはPDEのアドレスを指定する。

DLL

Kdexts.dll

追加情報

ページ テーブルとページ ディレクトリの詳細、およびステータス ビットの説明については、Mark Russinovich および David Solomon による「Microsoft Windows Internals」を参照してください。

解説

パラメータが1つ指定され、このパラメータがページテーブルが格納されているメモリ領域のアドレスである場合、デバッガはこれを PTE パラメータ. デバッガはこのPTEと対応するPDEを表示する。

パラメータが1つ与えられ、そのパラメータがこの領域のアドレスでない場合、デバッガはこれを VirtualAddress パラメータが必要だ。 このアドレスのマッピングを保持するPTEとPDEが表示される。

2つのパラメータが与えられ、2番目のパラメータが 1 (または他の小さな数)、デバッガは最初のパラメータを LiteralAddress. このアドレスはPTEの実際のアドレスとして解釈され、またPDEの実際のアドレスとしても解釈され、対応する (場合によっては無効な) データが表示される。

(x86またはx64ターゲットコンピュータのみ) 2つのパラメータが与えられ、2つ目のパラメータが1つ目のパラメータより大きい場合、デバッガは2つのパラメータを StartAddress そして EndAddress. コマンドは次に、指定されたメモリ範囲内の各ページの PTE を表示する。

すべてのシステムPTEのリストについては !sysptes を拡張した。

以下はx86ターゲットコンピュータの例である:

kd> !pte 801544f4
801544F4  - PDE at C0300800        PTE at C0200550
          contains 0003B163      contains 00154121
        pfn 3b G-DA--KWV    pfn 154 G--A--KRV

この例の最初の行は、調査中の仮想アドレスを再表示している。 そして、PDEの仮想アドレスと、このアドレスの仮想-物理マッピングに関する情報を含むPTEを与える。

2行目はPDEとPTEの実際の内容である。

3行目は、これらの内容を解析し、ページフレーム番号 (PFN) とステータスビットに分割する。

参照 !pfn エクステンションまたは 仮想アドレスから物理アドレスへの変換 セクションを参照のこと。

x86またはx64のターゲット・コンピュータでは、PDEとPTEのステータス・ビットを以下の表に示す。 (その !pte ディスプレイはこれらのビットを大文字またはダッシュで表示し、さらに追加情報も表示する。

bit 設定時の表示 クリア時の表示 意味

0x200

C

-

コピーオンライト。

0x100

G

-

グローバル。

0x80

L

-

大きなページ。 これはPDEでのみ起こり、PTEでは決して起こらない。

0x40

D

-

汚い。

0x20

A

-

アクセスした。

0x10

N

-

キャッシュは無効。

0x8

T

-

ライトスルー。

0x4

U

K

所有者 (ユーザーモードまたはカーネルモード)。

0x2

R

書き込み可能か、読み取り専用か。 マルチプロセッサーコンピューターおよびWindows Vista以降が動作するコンピューターのみ。

0x1

V

有効。

E

-

実行可能なページ。 多くのx86システムを含む、ハードウェアの実行/非実行ビットをサポートしないプラットフォームでは、常にEが表示される。