次の方法で共有


PFNUSBCAMD_WaitOnDeviceEventコールバック関数 (usbcamdi.h)

USBCAMD_WaitOnDeviceEvent サービスは、カメラに外部イベント通知用の割り込みパイプがある場合に割り込みパイプからの読み取りを実行するために使用されます。

構文

PFNUSBCAMD_WaitOnDeviceEvent PfnusbcamdWaitondeviceevent;

NTSTATUS PfnusbcamdWaitondeviceevent(
  [in] PVOID DeviceContext,
  [in] ULONG PipeIndex,
  [in] PVOID Buffer,
  [in] ULONG BufferLength,
  [in] PCOMMAND_COMPLETE_FUNCTION EventComplete,
  [in] PVOID EventContext,
  [in] BOOLEAN LoopBack
)
{...}

パラメーター

[in] DeviceContext

デバイス固有のコンテキストへのポインター。

[in] PipeIndex

割り込みパイプのインデックスを指定します。

[in] Buffer

読み取りバッファーへのポインター。

[in] BufferLength

読み取りバッファーの長さ (バイト単位)。

[in] EventComplete

CommandCompleteFunction 定義されているカメラ ミニドライバーへのポインター。割り込み読み取りが完了したときに呼び出されます。この値は NULL できます。

[in] EventContext

CommandCompleteFunction で定義されたカメラ ミニドライバーに引数として渡されるメモリ ブロックポインター。

[in] LoopBack

USBCAMD が割り込み読み取りが完了するたびに割り込みパイプに別の読み取り要求を再送信するかどうかを指定します。 TRUE 設定

戻り値

USBCAMD_WaitOnDeviceEvent は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 その他のエラー コードは次のとおりです。

リターン コード 形容
STATUS_FILE_CLOSED デバイスが削除されました。
STATUS_INVALID_PARAMETER USBCAMD は、PipeIndex 引数で渡された値が無効、PipeIndex 引数で指定されたパイプの型が無効なパイプの種類、一括読み取り/書き込み要求が既に存在する、Buffer 引数が NULL など、さまざまな理由でSTATUS_INVALID_PARAMETERを返す場合があります。 BufferLength 引数で指定された長さが、最大パケット サイズより小さい。
STATUS_PENDING イベント作業項目は遅延されます。
STATUS_INSUFFICIENT_RESOURCES パイプから読み取る作業項目を割り当てるリソースが不足しています。

備考

この関数の一般的な使用シナリオは、スナップショット ボタンを持つカメラと、ボタンに関連付けられた割り込みパイプです。 ユーザーがスナップショット ボタンを押すと、割り込みパイプの読み取り要求が満たされ、カメラ ミニドライバーが呼び出されます。 カメラ ミニドライバーが USBCAMD_InitializeNewInterface 呼び出し中に CamControlFlag 引数にUSBCAMD_CamControlFlag_EnableDeviceEventsを設定した場合、STI モニターにもスナップショット イベントが通知されます。

USBCAMD_WaitOnDeviceEvent は USBCAMD バージョン 1.0 では使用できません。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー usbcamdi.h (Usbcamdi.h を含む)

関連項目

CommandCompleteFunction

USBCAMD_INTERFACE

USBCAMD_InitializeNewInterface