DXGK_PTE構造体 (d3dukmdt.h)
ページ テーブル エントリ (PTE) は、ページとその他の属性の物理アドレスを提供します。 PTE の正確な形式は、ハードウェアの実装によって異なります。
構文
typedef struct _DXGK_PTE {
union {
struct {
ULONGLONG Valid : 1;
ULONGLONG Zero : 1;
ULONGLONG CacheCoherent : 1;
ULONGLONG ReadOnly : 1;
ULONGLONG NoExecute : 1;
ULONGLONG Segment : 5;
ULONGLONG LargePage : 1;
ULONGLONG PhysicalAdapterIndex : 6;
ULONGLONG PageTablePageSize : 2;
ULONGLONG SystemReserved0 : 1;
ULONGLONG Reserved : 44;
};
ULONGLONG Flags;
};
union {
ULONGLONG PageAddress;
ULONGLONG PageTableAddress;
};
} DXGK_PTE;
メンバーズ
Valid
設定すると、エントリが有効であることを示します。 無効なエントリにアクセスすると、Zero フラグが設定されていない限り、回復不能なアドレス エラーが発生します。
Zero
Valid = 1 に設定すると、エントリへのアクセスはメモリ アクセスのゼロ値を返します。 これは、タイル化されたリソースをサポートするために使用されます。
Windows 10 以降でサポートされています。
CacheCoherent
設定すると、メモリ ページが CPU と GPU の間でキャッシュコヒーレントであることを示します。
ReadOnly
設定すると、メモリ ページが読み取り専用であることを示します。
NoExecute
設定すると、メモリ ページにデータが含まれていることを示します。これは、実行可能コマンドとして扱うべきではありません。
Windows 10 以降でサポートされています。
Segment
対応するメモリ ページがある 0 から始まる GPU メモリ セグメント識別子。 セグメント 0 はシステム メモリ用に予約されています。
LargePage
このビットは、カーネル モード ドライバーが DXGK_VIRTUALADDRESSCAPS::GpuMmuを設定した場合にのみ設定できます。LargePageSupportedキャップを します。 ページ テーブル アドレス (PageTableAddress + SegmentId) を設定すると、割り当てのメモリ アドレスになります。 割り当てサイズは、下位ページ テーブル レベルでカバーされる仮想アドレス範囲と同じです。 リーフ ページ テーブルに対してこのフラグを設定することはできません。
Windows 10 以降でサポートされています。
PhysicalAdapterIndex
リンクされたディスプレイ アダプター構成の物理アダプター インデックスを定義します。 1 つの物理アダプター上のページ テーブルの PTEs は、別の物理アダプター上のメモリを指すことができます。
Windows 10 以降でサポートされています。
PageTablePageSize
レベル 1 のページ 表項目では、リーフ・ページ表 PTEs のページ・サイズを定義します。 値は、DXGK_PTE_PAGE_SIZE 列挙子によって提供されます。 デュアル PTE がサポートされている場合、この値は無視する必要があります。
Windows 10 以降でサポートされています。
SystemReserved0
Reserved
システム用に予約されており、0 に設定されます。
Flags
構造体のマスクされていない値。
PageAddress
メモリ ページの 64 ビット物理アドレスの上位 52 ビット。 下位 12 ビットはゼロです。 アドレスはセグメントの先頭からのオフセットであり、Segmentまたはシステム メモリ アドレスによって定義されます。
PageTableAddress
下位レベルのページ テーブルの 64 ビット物理アドレスの上位 52 ビット。 下位 12 ビットはゼロです。 アドレスはセグメントの先頭からのオフセットであり、Segmentまたはシステム メモリ アドレスによって定義されます。
Windows 10 以降でサポートされています。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダー | d3dukmdt.h (D3dkmddi.h を含む) |