DXGKARG_RENDER構造体 (d3dkmddi.h)
DXGKARG_RENDER構造体は、コマンド バッファーからダイレクト メモリ アクセス (DMA) バッファーを生成するためのメンバーを記述します。
構文
typedef struct _DXGKARG_RENDER {
[in] const VOID *pCommand;
[in] UINT CommandLength;
[out] VOID *pDmaBuffer;
[in] UINT DmaSize;
[in] VOID *pDmaBufferPrivateData;
[in] UINT DmaBufferPrivateDataSize;
[in] DXGK_ALLOCATIONLIST *pAllocationList;
[in] UINT AllocationListSize;
[in] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListIn;
[in] UINT PatchLocationListInSize;
[in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
[in] UINT PatchLocationListOutSize;
[in/out] UINT MultipassOffset;
[in] UINT DmaBufferSegmentId;
[in] PHYSICAL_ADDRESS DmaBufferPhysicalAddress;
} DXGKARG_RENDER;
メンバー
[in] pCommand
コマンド バッファーの先頭へのポインター。
[in] CommandLength
pCommand が指すコマンド バッファーのサイズ (バイト単位)。
[out] pDmaBuffer
4 KB に配置された DMA バッファーの先頭へのポインター。 このバッファーは、DMA 経由でグラフィックス ハードウェアに送信できます。 ディスプレイ ミニポート ドライバーが DxgkDdiRender 関数または DxgkDdiRenderKm 関数から戻る前に、ドライバーは pDmaBuffer を、ドライバーが書き込んだ最後のバイトに続く次の空のバイトに設定する必要があります。または、空き領域がない場合は、ドライバーが位置 (バッファー領域を超える 1 バイト) を指す必要があります。 バッファーが十分に大きければ、この場所は正しかったでしょう。
[in] DmaSize
pDmaBuffer が指す DMA バッファーのサイズ (バイト単位)。
[in] pDmaBufferPrivateData
pDmaBuffer が指す DMA バッファーの生成に使用されるドライバー常駐のプライベート データ構造へのポインター。
[in] DmaBufferPrivateDataSize
pDmaBufferPrivateData が現在の操作を指すプライベート データ構造に残っているバイト数。
[in] pAllocationList
DMA バッファーが参照する割り当ての一覧の DXGK_ALLOCATIONLIST 構造体の配列。 最適なパフォーマンスを得る場合は、参照される各割り当てが 1 回表示されます。
[in] AllocationListSize
pAllocationList が指定する配列内の使用可能な要素の数。これは、DMA を介してグラフィックス ハードウェアに送信する割り当て仕様の数を表します。
[in] pPatchLocationListIn
pfnRenderCb関数の呼び出しでユーザー モードディスプレイ ドライバーが提供するパッチ位置リストのD3DDDI_PATCHLOCATIONLIST構造体の配列。
[in] PatchLocationListInSize
pPatchLocationListIn が指定する patch-location リスト内の要素の数。
[in/out] pPatchLocationListOut
ディスプレイ ミニポート ドライバー が 入力するパッチの場所の一覧のD3DDDI_PATCHLOCATIONLIST構造体の配列。 ドライバーが DxgkDdiRender 関数または DxgkDdiRenderKm 関数の呼び出しから戻る前に、ドライバーは pPatchLocationListOut を、ドライバーが更新した最後 のD3DDDI_PATCHLOCATIONLIST 要素に続く次の D3DDDI_PATCHLOCATIONLIST 要素に設定する必要があります。
[in] PatchLocationListOutSize
pPatchLocationListOut が指定するパッチの場所リスト内の要素の数。 ディスプレイ ミニポート ドライバーは、リスト全体のすべての要素を入力する必要はありません。ドライバーは、DMA バッファー内のパッチの場所を記述するために必要な要素のみを使用する必要があります。
[in/out] MultipassOffset
ディスプレイ ミニポート ドライバーの DxgkDdiRender 関数または DxgkDdiRenderKm 関数が新しい DMA バッファーを取得するために STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER を返す必要がある場合に、レンダリング操作の進行状況を指定する UINT 値。 ドライバーの DxgkDdiRender または DxgkDdiRenderKm 関数が新しいコマンド バッファーで最初に呼び出されると、 MultipassOffset は 0 に初期化されます。 ドライバーが DxgkDdiRender または DxgkDdiRenderKm 呼び出しから戻る前に、ドライバーは、同じコマンド バッファーを使用して後続の DxgkDdiRender または DxgkDdiRenderKm 呼び出しの翻訳の進行状況を表示するようにこのメンバーを設定します。 DirectX グラフィックス カーネル サブシステムは、値をさらに変更しません。
[in] DmaBufferSegmentId
DMA バッファーがページングされたメモリ セグメントの識別子。 識別子が 0 の場合、DMA バッファーは正しくページングされません。
[in] DmaBufferPhysicalAddress
DMA バッファーがページングされた物理アドレスを示すPHYSICAL_ADDRESS データ型 ( LARGE_INTEGERとして定義されます)。 物理アドレスが 0 の場合、DMA バッファーは正しくページングされません。
注釈
DxgkDdiRenderKm 関数のサポートは、GDI ハードウェア アクセラレーションをサポートするディスプレイ アダプターの Windows 7 以降で追加されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
Header | d3dkmddi.h (D3dkmddi.h を含む) |