DXGK_CONTEXTINFO構造体 (d3dkmddi.h)
DXGK_CONTEXTINFO構造体は、デバイス コンテキストを記述します。
構文
typedef struct _DXGK_CONTEXTINFO {
UINT DmaBufferSize;
UINT DmaBufferSegmentSet;
UINT DmaBufferPrivateDataSize;
UINT AllocationListSize;
UINT PatchLocationListSize;
UINT Reserved;
DXGK_CONTEXTINFO_CAPS Caps;
ULONG PagingCompanionNodeId;
} DXGK_CONTEXTINFO;
メンバーズ
DmaBufferSize
グラフィックス処理装置 (GPU) に直接メモリ アクセス (DMA) を介して送信されるハードウェア コマンドのバッファーのサイズ (バイト単位)。
DMA バッファーは、コンテキストの作成後に拡大および縮小できます。ただし、DMA バッファーは、DmaBufferSize が指定 開始サイズより小さくすることはできません。
DmaBufferSegmentSet
GPU から DMA バッファーにアクセスできるようにする必要があるセグメントの識別子。
DmaBufferPrivateDataSize
各 DMA バッファーに関連付けられているドライバー常駐のプライベート データ構造のサイズ (バイト単位)。 このプライベート データ構造のメモリは、非ページ プールから割り当てられます。 ドライバーが DmaBufferPrivateDataSize で 0指定した場合、プライベート データ構造にメモリは割り当てされません。
DMA バッファーに関連付けられているプライベート データ構造は、DMA バッファーの作成時に 0 に初期化されます。 DMA バッファーの有効期間中、ビデオ メモリ マネージャーは、DMA バッファーに関連付けられているプライベート データ構造にアクセスしません。
AllocationListSize
割り当ての配列内の要素の開始数 (つまり、DXGK_ALLOCATIONLIST 構造体の配列)。 この数は、ドライバーがドライバーの DxgkDdiPresent および DxgkDdiRender 関数の呼び出しで、DXGKARG_PRESENT および DXGKARG_RENDER 構造体のメンバーを pAllocationList に要求する割り当ての開始数です。
割り当てリストは、コンテキストの作成後に拡大および縮小できます。ただし、割り当てリストは、AllocationListSize で指定 開始サイズよりも小さくすることはできません。
PatchLocationListSize
ユーザー モードとカーネル モードのデバイスのパッチの場所 (つまり、D3DDDI_PATCHLOCATIONLIST 構造体の配列) の配列内の要素の開始数。 この番号は、ドライバーが DxgkDdiRender 関数の呼び出しで DXGKARG_RENDER 構造体のメンバー pPatchLocationListIn に要求するパッチの場所の開始数です。
パッチの場所リストは、コンテキストの作成後に拡大および縮小できます。ただし、patchLocationListSize が指定した開始サイズより小、パッチの場所リストを縮小することはできません。
Reserved
このメンバーは予約されており、0 に設定する必要があります。
このメンバーは、Windows 7 以降で使用できます。
Caps
コンテキストでサポートされるオプションの機能について説明します。
Windows 10 以降でサポートされています。
PagingCompanionNodeId
このコンテキスト ページング コンパニオンに使用するエンジンの 0 から始まるエンジン識別子を指定します。
Windows 10 以降でサポートされています。
備考
ディスプレイ ミニポート ドライバーは、DmaBufferSize と AllocationListSize メンバーの値を指定して、次のことが保証されます。
- Microsoft DirectX グラフィックス サブシステムでは、(ディスプレイ ミニポート ドライバーの DxgkDdiPresent 関数を使用して) 表示するダイレクト メモリ アクセス (DMA) バッファーを 1 つしか使用できません。すべてのシナリオに対して、少なくとも 1 つの RECT 構造体です。
- DMA バッファーと割り当てリスト バッファーのサイズは、複数のバッファーに分割できない少なくとも 1 つのコマンドを保持するのに十分な大きさです。
- DMA バッファーと割り当てリスト バッファーのサイズは、セットアップと DMA のオーバーヘッドを回避するのに十分な大きさです。
ドライバーが DmaBufferSegmentSet を 0 に設定した場合、ビデオ メモリ マネージャーは、DMA バッファーに対して、書き込み結合メモリがマップされた、連続したページ ロックされたメモリを割り当てます。 そのため、GPU は、AGP アパーチャの外部で発生する AGP 転送が許可されていないコンピューターで PCI サイクルを使用して DMA バッファーにアクセスする必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
ヘッダー | d3dkmddi.h (D3dkmddi.h を含む) |
関連項目
DxgkDdiRender を する
RECT の