次の方法で共有


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 で指定 開始サイズよりも小さくすることはできません。

DXGK_CREATECONTEXTFLAGS場合の に注意してください。GdiContext は 1 に設定されます。つまり、コンテキストは GDI 固有のコンテキストとして作成 、AllocationListSize は 256 の値に設定する必要があります。
 

PatchLocationListSize

ユーザー モードとカーネル モードのデバイスのパッチの場所 (つまり、D3DDDI_PATCHLOCATIONLIST 構造体の配列) の配列内の要素の開始数。 この番号は、ドライバーが DxgkDdiRender 関数の呼び出しで DXGKARG_RENDER 構造体のメンバー pPatchLocationListIn に要求するパッチの場所の開始数です。

パッチの場所リストは、コンテキストの作成後に拡大および縮小できます。ただし、patchLocationListSize が指定した開始サイズより小、パッチの場所リストを縮小することはできません。

Reserved

このメンバーは予約されており、0 に設定する必要があります。

このメンバーは、Windows 7 以降で使用できます。

Caps

コンテキストでサポートされるオプションの機能について説明します。

Windows 10 以降でサポートされています。

PagingCompanionNodeId

このコンテキスト ページング コンパニオンに使用するエンジンの 0 から始まるエンジン識別子を指定します。

Windows 10 以降でサポートされています。

備考

ディスプレイ ミニポート ドライバーは、DmaBufferSizeAllocationListSize メンバーの値を指定して、次のことが保証されます。

  • Microsoft DirectX グラフィックス サブシステムでは、(ディスプレイ ミニポート ドライバーの DxgkDdiPresent 関数を使用して) 表示するダイレクト メモリ アクセス (DMA) バッファーを 1 つしか使用できません。すべてのシナリオに対して、少なくとも 1 つの RECT 構造体です。
  • DMA バッファーと割り当てリスト バッファーのサイズは、複数のバッファーに分割できない少なくとも 1 つのコマンドを保持するのに十分な大きさです。
  • DMA バッファーと割り当てリスト バッファーのサイズは、セットアップと DMA のオーバーヘッドを回避するのに十分な大きさです。
ディスプレイ ミニポート ドライバーは、DmaBufferSegmentSet メンバー内の絞りセグメントのみを指定できます。ドライバーがメモリ セグメントを指定する場合は、コンテキスト作成エラーが発生します。

ドライバーが DmaBufferSegmentSet を 0 に設定した場合、ビデオ メモリ マネージャーは、DMA バッファーに対して、書き込み結合メモリがマップされた、連続したページ ロックされたメモリを割り当てます。 そのため、GPU は、AGP アパーチャの外部で発生する AGP 転送が許可されていないコンピューターで PCI サイクルを使用して DMA バッファーにアクセスする必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
ヘッダー d3dkmddi.h (D3dkmddi.h を含む)

関連項目

D3DDDI_PATCHLOCATIONLIST

DXGKARG_CREATECONTEXT

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_CREATECONTEXTFLAGS

DxgkDdiPresent

DxgkDdiRender する

RECT