PCAM_PROCESS_PACKET_ROUTINE_EX コールバック関数 (usbcamdi.h)
カメラ ミニドライバーの CamProcessUSBPacketEx コールバック関数は、USB パケットを処理します。
構文
PCAM_PROCESS_PACKET_ROUTINE_EX PcamProcessPacketRoutineEx;
ULONG PcamProcessPacketRoutineEx(
PDEVICE_OBJECT BusDeviceObject,
PVOID DeviceContext,
PVOID CurrentFrameContext,
PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket,
PVOID SyncBuffer,
PUSBD_ISO_PACKET_DESCRIPTOR DataPacket,
PVOID DataBuffer,
PBOOLEAN FrameComplete,
PULONG PacketFlag,
PULONG ValidDataOffset
)
{...}
パラメーター
BusDeviceObject
USB ハブによって作成されたカメラ ミニドライバーのデバイス オブジェクトへのポインター。
DeviceContext
カメラ ミニドライバーのデバイス コンテキストへのポインター。
CurrentFrameContext
カメラ ミニドライバーのフレーム コンテキストへのポインター。
SyncPacket
同期パイプから USBD_ISO_PACKET_DESCRIPTOR 構造体へのポインター。 インターフェイスにパイプが 1 つしかない場合、この値は NULL です 。
SyncBuffer
SyncPacket のデータへのポインター。
DataPacket
データ パイプからの等時性パケット記述子を指定します。
DataBuffer
DataPacket へのポインター。
FrameComplete
カメラ ミニドライバーが新しいビデオ フレームの最初のデータ パケットかどうかを示すために設定されるブール値へのポインター。
PacketFlag
ミニドライバーが現在のフレームの内容を示すように設定する値へのポインター。 次のいずれかの値に設定する必要があります。
フラグ | 説明 |
---|---|
USBCAMD_PROCESSPACKETEX_DropFrame | 現在のフレームは変更できません。 読み取り IRP はリサイクルする必要があります。 |
USBCAMD_PROCESSPACKETEX_NextFrameIsStill | フレームは静止画像です。 |
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill | 現在のフレームは、引き続きピン用です。 |
ValidDataOffset
パケットの先頭からのオフセットを示す ULONG 値へのポインター。 USBCAMD は、このオフセットからコピーを開始する必要があります。 これにより、帯域内信号の場合に余分なバッファコピーが不要になります。 カメラが帯域内シグナリングを使用していない場合は、 ValidDataOffset を 0 に設定する必要があります。
戻り値
この関数は、コピーする必要があるバイト数を返します。
注釈
ミニドライバーは、可能な限り迅速に CamProcessUSBPacketEx 関数を完了する必要があります。 画像処理は 、CamProcessRawVideoFrameEx 関数に遅延させる必要があります。
このコールバック関数は、等時性パイプでのみ使用されます (ビデオまたはストリーミング中)。
元の USBCAMD では 、CamProcessUSBPacketEx は呼び出されません。
この関数は省略可能です。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | usbcamdi.h (Usbcamdi.h を含む) |
IRQL | DISPATCH_LEVEL |