次の方法で共有


DrvSynchronizeSurface 関数 (winddi.h)

DrvSynchronizeSurface 関数は、GDI が指定されたサーフェスに書き込む必要があることをドライバーに通知します。 この関数を使用すると、デバイスのコプロセッサによって実行される描画操作を GDI と調整できます。

構文

void DrvSynchronizeSurface(
  SURFOBJ *pso,
  RECTL   *prcl,
  FLONG   fl
);

パラメーター

pso

描画の同期が行われるサーフェスを識別する SURFOBJ 構造体へのポインター。

prcl

GDI が描画するサーフェスを表す RECTL 構造体 ( NULL) を指定します。 これが進行中の描画操作と競合しない場合、ドライバーは、コプロセッサの完了を待たずに GDI 描画を許可することを選択できます。

fl

GDI が同期要求を行うイベントを指定するフラグです。 このパラメーターには、次のいずれかの値を指定できます。

DSS_TIMER_EVENT

GDI は、同期タイマー イベントが原因でこの関数を呼び出しています。 タイマー イベントは、 DEVINFO 構造体のGCAPS2_SYNCTIMER ビットを指定するドライバーに対してのみ生成されます。

DSS_FLUSH_EVENT

GDI は、同期フラッシュ イベントが原因でこの関数を呼び出しています。 これらのフラッシュ イベントは、 DEVINFO 構造体のGCAPS2_SYNCFLUSH ビットを指定するドライバーに対してのみ生成されます。

戻り値

なし

解説

この関数を使用すると、デバイスのコプロセッサによって実行される描画操作を GDI と調整できます。

DrvSynchronizeSurface は、必要に応じてディスプレイ ドライバーに実装できます。 GDI は、 EngAssociateSurface によってフックされている場合にのみ、この関数を呼び出します。 GDI は、デバイスサーフェイスに直接描画する直前に DrvSynchronizeSurface を呼び出します。

DrvSynchronizeSurface は、描画にコプロセッサを使用するデバイスをサポートすることを目的としています。 このようなデバイスは、長い描画操作を開始し、操作の続行中に GDI に戻ることができます。 デバイス ドライバーがサーフェスに対するすべての描画操作を実行しない場合は、後続の描画操作が GDI によって処理される可能性があります。 この場合、GDI がサーフェス上に描画する前に、GDI がコプロセッサの作業を完了するまで待機する必要があります。

この関数は、 prcl で指定された四角形領域内のサーフェスに GDI が安全に描画できる場合にを返す必要があります。

DrvSynchronizeSurface 自体が出力関数ではありません。

要件

   
対象プラットフォーム デスクトップ
Header winddi.h (Winddi.h を含む)

関連項目

DrvEnablePDEV

DrvSynchronize

EngAssociateSurface