次の方法で共有


DXGK_DEVICEINFO構造体 (d3dkmddi.h)

DXGK_DEVICEINFO構造体では、Microsoft DirectX グラフィックス カーネル サブシステムがディスプレイ ミニポート ドライバーから必要なパラメーターについて説明します。

構文

typedef struct _DXGK_DEVICEINFO {
  [out] UINT                 DmaBufferSize;
  [out] UINT                 DmaBufferSegmentSet;
  [out] UINT                 DmaBufferPrivateDataSize;
  [out] UINT                 AllocationListSize;
  [out] UINT                 PatchLocationListSize;
  [out] DXGK_DEVICEINFOFLAGS Flags;
} DXGK_DEVICEINFO;

メンバー

[out] DmaBufferSize

ハードウェアへの直接メモリ アクセス (DMA) を介して送信されるハードウェア コマンドのバッファーのサイズ (バイト単位)。

DMA バッファーは、デバイスの作成後に拡大および縮小できます。ただし、DMA バッファーは、 DmaBufferSize が指定する開始サイズよりも小さく縮小することはできません。

[out] DmaBufferSegmentSet

DMA バッファーをグラフィックス処理装置 (GPU) からアクセスできるようにする必要があるセグメントの識別子。

[out] DmaBufferPrivateDataSize

各 DMA バッファーに関連付けられているドライバー常駐プライベート データ構造のサイズ (バイト単位)。 このプライベート データ構造のメモリは、非ページ プールから割り当てられます。 ドライバーが DmaBufferPrivateDataSize で 0 を指定した場合、プライベート データ構造にメモリは割り当てされません。

DMA バッファーに関連付けられているプライベート データ構造は、DMA バッファーの作成時に 0 に初期化されます。 DMA バッファーの有効期間中、ビデオ メモリ マネージャーは DMA バッファーに関連付けられているプライベート データ構造にアクセスしません。

[out] AllocationListSize

割り当ての配列内の要素の開始数 (つまり、 DXGK_ALLOCATIONLIST 構造体の配列)。 この数は、ドライバーがドライバーの DxgkDdiPresent 関数と DxgkDdiRender 関数の呼び出しで、DXGKARG_PRESENT および DXGKARG_RENDER 構造体の pAllocationList メンバーに要求する割り当ての開始数です。

割り当てリストは、デバイスの作成後に拡大および縮小できます。ただし、割り当てリストは 、AllocationListSize が指定する開始サイズよりも小さくすることはできません。

[out] PatchLocationListSize

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

パッチの場所リストは、デバイスの作成後に拡大および縮小できます。ただし、 PatchLocationListSize で指定されている開始サイズよりも、パッチの場所リストを小さくすることはできません。

[out] Flags

ビット フィールド フラグでデバイスに関する情報を識別するDXGK_DEVICEINFOFLAGS構造体。

注釈

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

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

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

要件

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

こちらもご覧ください

D3DDDI_PATCHLOCATIONLIST

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_DEVICEINFOFLAGS

DxgkDdiCreateDevice

DxgkDdiPresent

DxgkDdiRender