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
ダイレクト メモリ アクセス (DMA) を介してグラフィックス処理装置 (GPU) に送信されるハードウェア コマンドのバッファーのサイズ (バイト単位)。
DMA バッファーは、コンテキストの作成後に拡大および縮小できます。ただし、DMA バッファーは、 DmaBufferSize が指定する開始サイズより小さく縮小することはできません。
DmaBufferSegmentSet
DMA バッファーを GPU からアクセスできるようにする必要があるセグメントの識別子。
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 メンバーに含まれるようドライバーが要求するパッチの場所の開始番号です。
patch-location リストは、コンテキストの作成後に拡大および縮小できます。ただし、patch-location リストは 、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 |
Header | d3dkmddi.h (D3dkmddi.h を含む) |