次の方法で共有


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

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

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 メンバー内の絞りセグメントのみを指定できます。ドライバーでメモリ セグメントが指定されている場合は、コンテキスト作成エラーが発生します。

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

要件

要件
サポートされている最小のクライアント Windows Vista
Header d3dkmddi.h (D3dkmddi.h を含む)

こちらもご覧ください

D3DDDI_PATCHLOCATIONLIST

DXGKARG_CREATECONTEXT

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_CREATECONTEXTFLAGS

DxgkDdiPresent

DxgkDdiRender

Rect