次の方法で共有


DrvSynchronize 関数 (winddi.h)

DrvSynchronize 関数は、GDI がデバイス管理サーフェスにアクセスする必要があることをドライバーに通知します。 この関数を使用すると、デバイスのコプロセッサによって実行される非同期描画操作を GDI アクセスと調整できます。

構文

void DrvSynchronize(
  DHPDEV dhpdev,
  RECTL  *prcl
);

パラメーター

dhpdev

GDI と同期するデバイスを識別する物理デバイスの PDEV 構造体を処理します。 このパラメーターは、 DrvEnablePDEV によって GDI に返されるデバイス ハンドルです。

prcl

RECTL 構造体へのポインター。 このパラメーターは、ドライバーでは無視する必要があります。

戻り値

なし

解説

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

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

この関数は、GDI がデバイス管理サーフェスにアクセスしても安全な場合にのみを返す必要があります。 つまり、 DrvSynchronize は、すべての非同期描画操作がデバイスのコプロセッサによって完了するまで、呼び出しからの戻りを遅らせる必要があります。したがって、GDI がデバイス管理サーフェスにアクセスしても安全であることを示します。

DrvSynchronize は、描画にコプロセッサを使用するデバイスをサポートすることを目的としています。 このようなデバイスでは、描画が完了する前に、操作から GDI に戻って、一部の描画操作を非同期として扱うことができます。 この場合、後続の描画操作が GDI によって処理される可能性があります。 GDI がデバイスで管理されるサーフェスに安全にアクセスするには、デバイスのコプロセッサによって実行される 非同期レンダリング が完了していることを確認する手段が必要です。 この関数を呼び出すことで、GDI はデバイス管理サーフェスへのアクセスをドライバーと同期します。

GDI は、デバイスで管理されるサーフェスに 対して DrvSynchronize を呼び出すことはありません。 DrvSynchronize 自体が出力関数ではありません。

要件

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

こちらもご覧ください

DrvEnablePDEV

DrvSynchronizeSurface

EngAssociateSurface