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
DMA バッファーの先頭へのポインター。4 KB にアラインされています。 このバッファーは、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 が指定 パッチの場所リスト内の要素の数。
[in/out] pPatchLocationListOut
ディスプレイ ミニポート ドライバーが入力する修正プログラムの場所の一覧の D3DDDI_PATCHLOCATIONLIST 構造体の配列。 ドライバーは、DxgkDdiRender または DxgkDdiRenderKm 関数 の呼び出しから戻る前に、ドライバー 更新された最後の D3DDDI_PATCHLOCATIONLIST 要素に続く次の D3DDDI_PATCHLOCATIONLIST 要素に pPatchLocationListOut を設定する必要があります。
[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 |
ヘッダー | d3dkmddi.h (D3dkmddi.h を含む) |
関連項目
DxgkDdiRender を する
pfnRenderCb の