コールバック関数PDD_WAITFORVERTICALBLANK (ddrawint.h)
DdWaitForVerticalBlank コールバック関数は、デバイスの垂直方向の空白の状態を返します。
構文
PDD_WAITFORVERTICALBLANK PddWaitforverticalblank;
DWORD PddWaitforverticalblank(
PDD_WAITFORVERTICALBLANKDATA unnamedParam1
)
{...}
パラメーター
unnamedParam1
垂直方向 の空白 の状態を取得するために必要な情報を含むDD_WAITFORVERTICALBLANKDATA構造体を指します。
戻り値
DdWaitForVerticalBlank は、次のいずれかのコールバック コードを返します。
注釈
lpWaitForVerticalBlank のDD_WAITFORVERTICALBLANKDATA構造体の dwFlags メンバーの値に応じて、ドライバーは次の操作を行う必要があります。
- dwFlags がDDWAITVB_I_TESTVB場合、ドライバーは現在の垂直ブランキングの状態を照会する必要があります。 モニターが現在垂直空白の場合、ドライバーは、DD_WAITFORVERTICALBLANKDATAの bIsInVB メンバーを TRUE に設定する必要があります。それ以外の場合、ドライバーは bIsInVB を FALSE に設定する必要があります。
- dwFlags がDDWAITVB_BLOCKBEGINされている場合、ドライバーはブロックし、垂直空白が始まるまで待機する必要があります。 ドライバーがブロックを開始するときに垂直空白が進行中の場合、ドライバーは、次の垂直空白が開始されるまで待機してから、戻る必要があります。
- dwFlags がDDWAITVB_BLOCKENDされている場合、ドライバーはブロックし、垂直空白が終了するまで待機する必要があります。
DdWaitForVerticalBlank を使用すると、アプリケーションはそれ自体を垂直ブランキング間隔 (VBI) と同期できます。
WHQL ディスプレイ互換性テスト (DCT) にも問題があります。 電源管理用の DCT の 1 つがモニターの電源を切り、垂直の空白状態をポーリングし、変更を待機します。 モニターの電源が切れているときにドライバーが常に同じ垂直空の状態を報告する場合、テスト アプリケーションは結果が変更されるのを待ってハングします。 これは、モニターの電源が切れている間に交互の結果を返すことによって Permedia2 サンプル ドライバーで修正されました。 つまり、ドライバーの DdWaitForVerticalBlank エントリ ポイントが初めて DDWAIT_I_TESTVB フラグを使用して呼び出されたとき (モニターの電源がオフの場合)、次に TRUE を返すときは FALSE、次回は FALSE などを返します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | ddrawint.h (Winddi.h を含む) |