DXGKARG_PRESENT構造体 (d3dkmddi.h)

DXGKARG_PRESENT 構造体は、ソースからプライマリへのコピー操作を記述します。

構文

typedef struct _DXGKARG_PRESENT {
  [out]    VOID                     *pDmaBuffer;
  [in]     UINT                     DmaSize;
  [in]     VOID                     *pDmaBufferPrivateData;
  [in]     UINT                     DmaBufferPrivateDataSize;
  union {
    [in]     DXGK_ALLOCATIONLIST               *pAllocationList;
    [in]     DXGK_PRESENTALLOCATIONINFO        *pAllocationInfo;
    [in]     DXGK_PRESENTMULTIPLANEOVERLAYINFO *pPresentMultiPlaneOverlayInfo;
  };
#if ...
  [in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#if ...
  [in]     UINT                     PatchLocationListOutSize;
  [in]     DXGK_ALLOCATIONLIST      *pAllocationList;
#else
  [in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#endif
#else
  [in]     UINT                     PatchLocationListOutSize;
#endif
  [in/out] UINT                     MultipassOffset;
  [in]     UINT                     Color;
  [in]     RECT                     DstRect;
  [in]     RECT                     SrcRect;
  [in]     UINT                     SubRectCnt;
  [in]     const RECT               *pDstSubRects;
  [in]     D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
  [in]     DXGK_PRESENTFLAGS        Flags;
  [in]     UINT                     DmaBufferSegmentId;
  [in]     PHYSICAL_ADDRESS         DmaBufferPhysicalAddress;
  [in]     UINT                     Reserved;
           D3DGPU_VIRTUAL_ADDRESS   DmaBufferGpuVirtualAddress;
           UINT                     NumSrcAllocations;
           UINT                     NumDstAllocations;
           UINT                     PrivateDriverDataSize;
           PVOID                    pPrivateDriverData;
} DXGKARG_PRESENT;

メンバーズ

[out] pDmaBuffer

DMA バッファーの先頭へのポインター。4 KB にアラインされています。 このバッファーは、DMA を介してグラフィックス ハードウェアに送信できます。 ディスプレイ ミニポート ドライバーが DxgkDdiPresent 関数から戻る前に、ドライバーは pDmaBuffer 、ドライバーが書き込んだ最後のバイトに続く次の空のバイトに設定する必要があります。または、空き領域がない場合は、ドライバーが場所 (バッファー領域を超える 1 バイト) を指す必要があります。 バッファーが十分な大きさであれば、この場所は正しいものでした。

[in] DmaSize

pDmaBuffer が指 DMA バッファーのサイズ (バイト単位)。

[in] pDmaBufferPrivateData

pDmaBuffer が指す DMA バッファーに関連付けられているドライバー常駐のプライベート データ構造体へのポインター。

[in] DmaBufferPrivateDataSize

pDmaBufferPrivateData が現在の操作を指 プライベート データ構造に残っているバイト数。

[in] pAllocationList

コピー操作のソース、コピー先、またはその両方を記述する DXGK_ALLOCATIONLIST 構造体の配列。 ドライバーは、pAllocationList[DXGK_PRESENT_SOURCE_INDEX] 要素 (つまり、要素 1) の hDeviceSpecificAllocation メンバーを介してソース割り当てハンドルにアクセスします。 ドライバーは、pAllocationList[DXGK_PRESENT_DESTINATION_INDEX] 要素 (つまり、要素 2) の hDeviceSpecificAllocation メンバーを介して宛先割り当てハンドルにアクセスします。

割り当てリストの要素で指定されているハンドルは、割り当てが開かれたときにドライバーの DxgkDdiOpenAllocation 関数が返すデバイス固有のハンドルです。 操作のソースまたは変換先が存在しない場合、それぞれの要素の hDeviceSpecificAllocation メンバー は NULL 。 このメンバーは、Windows 7 以降で使用できます。

注意

割り当てリスト (要素 0) の最初の要素の hDeviceSpecificAllocation メンバーは、常に NULL

[in] pAllocationInfo

システム用に予約されています。 ディスプレイ ミニポート ドライバーは、このメンバーを無視する必要があります。 このメンバーは、Windows 7 以降で使用できます。

[in] pPresentMultiPlaneOverlayInfo

VidPN 入力と表示するオーバーレイ 平面に関する情報を指定する DXGK_PRESENTMULTIPLANEOVERLAYINFO 型の構造体へのポインター。

Windows 8 以降でサポートされています。

[in/out] pPatchLocationListOut

ディスプレイ ミニポート ドライバーが塗りつぶすパッチの場所の一覧の D3DDDI_PATCHLOCATIONLIST 構造体の配列。 ドライバーは、DxgkDdiPresent 関数の呼び出しから戻る前に、ドライバー 更新された最後のD3DDDI_PATCHLOCATIONLIST要素に続く次のD3DDDI_PATCHLOCATIONLIST要素に pPatchLocationListOut を設定する必要があります。

[in] PatchLocationListOutSize

pPatchLocationListOut が指定 パッチ位置リスト内の要素の数。 ディスプレイ ミニポート ドライバーは、リスト全体のすべての要素を埋める必要はありません。ドライバーは、DMA バッファー内のパッチの場所を記述するために必要な要素のみを使用する必要があります。

[in/out] MultipassOffset

ディスプレイ ミニポート ドライバーの DxgkDdiPresent 関数が新しい DMA バッファーを取得するためにSTATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFERを返す必要がある場合に、コピー操作の進行状況を指定する UINT 値。 ドライバーの DxgkDdiPresent 関数が新しい RECT リストで最初に呼び出されると、multipassOffset 0 に初期化されます。 ドライバーが DxgkDdiPresent 呼び出しから戻る前に、ドライバーは MultipassOffset 設定して、同じコマンド バッファーを使用した後続の DxgkDdiPresent 呼び出しのコピーの進行状況を表示します。 Microsoft DirectX グラフィックス カーネル サブシステムは、値をさらに変更しません。

[in] Color

Flags メンバーで設定された ColorFill ビット フィールド フラグによって指定されるカラーフィル操作、または SrcColorKey または dstColorKey ビット フィールド フラグによって指定されるカラー キー操作の A8R8G8B8色。 ColorFill、SrcColorKey 、および DstColorKey ビット フィールド フラグは、いつでも 1 つだけ設定されることに注意してください。

プライマリ形式が淡色化された RGB の場合、Color には、D3DDDIFORMAT 列挙型のD3DDDIFMT_A8R8G8B8値ではなくパレット インデックスが含まれます。

[in] DstRect

ストレッチ 係数の計算に使用される、ターゲットの四角形の RECT 構造体。

[in] SrcRect

ストレッチ係数の計算に使用されるソース四角形の RECT 構造体。

[in] SubRectCnt

pDstSubRects 指定 配列内のコピー先のサブ四角形の数。

[in] pDstSubRects

DxgkDdiPresent 関数がコピーする対象のサブ四角形の一覧の RECT 構造体の配列。

[in] FlipInterval

反転間隔を示す D3DDDI_FLIPINTERVAL_TYPE型指定された値 (つまり、0、1、2、3、または 4 つの垂直同期の後に反転が発生した場合)。

[in] Flags

実行する現在の操作の種類をビット フィールド フラグで識別する DXGK_PRESENTFLAGS 構造体。 ColorFillSrcColorKey、および DstColorKeyFlags のビット フィールド フラグは相互に排他的であることに注意してください。

[in] DmaBufferSegmentId

DMA バッファーがページングされたメモリ セグメントの識別子。 識別子が 0 の場合、DMA バッファーは正しくページングされません。

[in] DmaBufferPhysicalAddress

DMA バッファーがページングされた物理アドレスを示す PHYSICAL_ADDRESS データ型 (LARGE_INTEGERとして定義)。 物理アドレスが 0 の場合、DMA バッファーは正しくページングされません。

[in] Reserved

システム用に予約されています。 ドライバーは、このメンバーを無視する必要があります。

DmaBufferGpuVirtualAddress

DMA バッファーがページングされた仮想アドレスを示す D3DGPU_VIRTUAL_ADDRESS データ型。 物理アドレスが 0 の場合、DMA バッファーは正しくページングされません。

NumSrcAllocations

ソース内のコンテキスト割り当ての数。

NumDstAllocations

宛先内のコンテキスト割り当ての数。

PrivateDriverDataSize

pPrivateDriverDataのサイズ。

pPrivateDriverData

オプションのプライベート ドライバー データを含むバッファーへのポインター。

備考

SrcRect メンバーと dstRect メンバーが指定 ソースとターゲットの四角形領域の比率は、ストレッチ係数の計算に使用されます。 ドライバーは、コピー操作を実行するときに、ストレッチ ファクターの計算を考慮できます。

ドライバーは、クリッピングを実行する必要はありません。 Microsoft DirectX グラフィックス カーネル サブシステムは、pDstSubRects メンバーが指定する宛先サブ四角形のリストを、DstRect メンバーが指定する変換先の四角形の座標と画面 (プライマリ) にプリクリップします。 pDstSubRects でコピー先のサブ四角形の一覧指定されている場合、ドライバーは SrcRect のみを使用し、DstRect してストレッチ係数を計算し、実際のコピー操作にコピー先のサブ四角形の座標を使用する必要があることに注意してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
ヘッダー d3dkmddi.h (D3dkmddi.h を含む)

関連項目

D3DDDI_FLIPINTERVAL_TYPE

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DXGK_PRESENTFLAGS

DXGK_PRESENTMULTIPLANEOVERLAYINFO

DxgkDdiPresentする

RECT