次の方法で共有


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

[CamProcessUSBPacket はサポートされていないため、今後変更または使用できない可能性があります。 代わりに、CamProcessUSBPacketEx を使用します。 ]

カメラ ミニドライバーの CamProcessUSBPacket コールバック関数は、USB パケットを処理します。

構文

PCAM_PROCESS_PACKET_ROUTINE PcamProcessPacketRoutine;

ULONG PcamProcessPacketRoutine(
  PDEVICE_OBJECT BusDeviceObject,
  PVOID DeviceContext,
  PVOID CurrentFrameContext,
  PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket,
  PVOID SyncBuffer,
  PUSBD_ISO_PACKET_DESCRIPTOR DataPacket,
  PVOID DataBuffer,
  PBOOLEAN FrameComplete,
  PBOOLEAN NextFrameIsStill
)
{...}

パラメーター

BusDeviceObject

USB ハブによって作成されたカメラ ミニドライバーのデバイス オブジェクトへのポインター。

DeviceContext

カメラ ミニドライバーのデバイス コンテキストへのポインター。

CurrentFrameContext

ミニドライバーのフレーム コンテキストへのポインター。

SyncPacket

同期パイプから USBD_ISO_PACKET_DESCRIPTOR 構造体へのポインター。 インターフェイスにパイプが 1 つしかない場合、この値は NULL です

SyncBuffer

SyncPacket のデータへのポインター。

DataPacket

データ パイプから USBD_ISO_PACKET_DESCRIPTOR 構造体へのポインター。

DataBuffer

DataPacket へのポインター。

FrameComplete

カメラ ミニドライバーが、これが新しいビデオ フレームの最初のデータ パケットであるかどうかを示すために設定するブール値へのポインター。 これが新しいビデオ フレームの最初のデータ パケットである場合は TRUE に 設定します。

NextFrameIsStill

カメラ ミニドライバーが設定するブール値へのポインター。次のフレームが静止フレームかどうかを示します。 ビデオ ストリームがライブ イメージを提供している場合は FALSE 、次のフレームが静止画像またはイメージ キャプチャ ストリームの場合は TRUE に設定する必要があります。

戻り値

このコールバック関数は、バッファーにコピーする必要があるバイト数 (RawFrameBuffer または FrameBuffer) を示す ULONG を返します。

注釈

元の USBCAMD との下位互換性を維持する必要があるカメラ ミニドライバーは、 USBCAMD_DEVICE_DATA 構造体とそれに関連付けられているコールバック関数 (つまり、"Ex" サフィックスを含まないコールバック関数) を使用する必要があります。

ミニドライバーは、可能な限り迅速にこの機能を完了する必要があります。 画像処理は CamProcessRawVideoFrame 関数に遅延させる必要があります。

この関数は省略可能です。

要件

要件
対象プラットフォーム デスクトップ
Header usbcamdi.h (Usbcamdi.h を含む)
IRQL DISPATCH_LEVEL

こちらもご覧ください

CamProcessRawVideoFrame

CamProcessUSBPacketEx

USBD_ISO_PACKET_DESCRIPTOR