イベント コールバックを使用したドライバー メッセージの処理
イベント コールバックを使用するには、 CreateEvent 関数を使用して手動リセット イベントを作成します。 waveOutOpen 関数の呼び出しで、fdwOpen パラメーターにCALLBACK_EVENTを指定します。 waveOutPrepareHeader 関数を呼び出した後、デバイスに波形オーディオ データを送信する前に、ResetEvent 関数を呼び出してイベントを非署名状態にします。 次に、waveHDR 構造体の dwFlags メンバーにWHDR_DONE フラグが設定されているかどうかを確認するループ内で、イベント ハンドルとタイムアウト値をパラメーターとして指定して WaitForSingleObject 関数を呼び出します。
イベント コールバックは特定のクローズ通知、完了通知、またはオープン通知を受け取らないので、イベントが発生した後に待機しているプロセスの状態をアプリケーションでチェックしなければならない場合があります。 WaitForSingleObject が返されるまでに、いくつかのタスクが完了している可能性があります。
関連トピック