次の方法で共有


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

コマンド バッファーの先頭へのポインター。

DxgkDdiRender 呼び出されると、ディスプレイ ミニポート ドライバーはバッファーを検証する必要があります。 ドライバーがこのメンバーにアクセスする方法の重要な情報については、「DxgkDdiRender の解説」を参照してください。
 

[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 構造体の配列。

DxgkDdiRender 呼び出されると、ディスプレイ ミニポート ドライバーはバッファーを検証する必要があります。 ドライバーがこのメンバーにアクセスする方法の重要な情報については、「DxgkDdiRender の解説」を参照してください。
 

[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 を含む)

関連項目

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiRender する

DxgkDdiRenderKm

pfnRenderCb