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 ビットは 0 です。 アドレスは、 セグメントまたはシステム メモリ アドレスによって定義されたセグメントの先頭からのオフセットです。
PageTableAddress
下位レベルのページ テーブルの 64 ビット物理アドレスの上位 52 ビット。 下位 12 ビットは 0 です。 アドレスは、 セグメントまたはシステム メモリ アドレスによって定義されたセグメントの先頭からのオフセットです。
Windows 10 以降でサポートされています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 以降のバージョンの Windows オペレーティング システムで使用できます。 |
Header | d3dukmdt.h (D3dkmddi.h を含む) |