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 を含む) |