PCAM_PROCESS_RAW_FRAME_ROUTINE_EX コールバック関数 (usbcamdi.h)
カメラ ミニドライバーの CamProcessRawVideoFrameEx コールバック関数は、生のビデオ フレームをデコードします。
構文
PCAM_PROCESS_RAW_FRAME_ROUTINE_EX PcamProcessRawFrameRoutineEx;
NTSTATUS PcamProcessRawFrameRoutineEx(
PDEVICE_OBJECT BusDeviceObject,
PVOID DeviceContext,
PVOID FrameContext,
PVOID FrameBuffer,
ULONG FrameLength,
PVOID RawFrameBuffer,
ULONG RawFrameLength,
ULONG NumberOfPackets,
PULONG BytesReturned,
ULONG ActualRawFrameLength,
ULONG StreamNumber
)
{...}
パラメーター
BusDeviceObject
USB ハブによって作成されたカメラ ミニドライバーのデバイス オブジェクトへのポインター。
DeviceContext
カメラ ミニドライバーのデバイス コンテキストへのポインター。
FrameContext
ミニドライバーのフレーム コンテキストへのポインター。
FrameBuffer
最終的に処理されたビデオ フレームを受け取るバッファーへのポインター。 USBCAMD がこのパラメーターを使用する方法の詳細については、「解説」セクションを参照してください。
FrameLength
(元の読み取り要求からの) フレーム バッファーの長さをバイト単位で指定します。
RawFrameBuffer
受信した USB パケットを含むバッファーへのポインター。 USBCAMD がこのパラメーターを使用する方法の詳細については、「解説」セクションを参照してください。
RawFrameLength
RawFrameBuffer の長さをバイト単位で指定します。
NumberOfPackets
RawFrameBuffer に受信する USB パケットの数を指定します。
BytesReturned
転送されたバイト数へのポインター。 ミニドライバーは、「等時性パイプの使用」Data Flow の説明に従って、処理中にエラーが発生した場合は、これを 0 に設定する必要があります。 USBCAMD がこのパラメーターを使用する方法の詳細については、「解説」セクションを参照してください。
ActualRawFrameLength
カメラから受信した実際のバッファーの長さを格納します。 この値はバイト単位で指定されます。
StreamNumber
このフレームが関連付けられているストリーム番号を示します。
戻り値
CamProcessRawVideoFrameEx は 、STATUS_SUCCESSまたは適切なエラー コードを返します。
注釈
USBCAMD は、ミニドライバーの CamProcessRawVideoFrameEx コールバックを呼び出す前に、 FrameBuffer パラメーターが指すバッファー内の最初の DWORD を0xdeadbeef値に設定します 。 ミニドライバーの CamProcessRawVideoFrameEx コールバック USBCAMD を呼び出した後、 FrameBuffer パラメーターが指すバッファー内の最初の DWORD で値 0xdeadbeef がチェックされ、 CamProcessRawVideoFrameEx が RawFrameBuffer パラメーターが指すバッファーから FrameBuffer パラメーターが指すバッファーにビデオ フレームが正常にコピーされたかどうかを判断します。
USBCAMD_InitializeNewInterface関数に渡される CamControlFlag 引数に次のいずれかのビットが設定されている場合、 この関数は 呼び出されません。
USBCAMD_CamControlFlag_NoVideoRawProcessing
USBCAMD_CamControlFlag_NoStillRawProcessing
USBCAMD は、未加工のフレームをミニドライバーに渡す前に、ストリーム ヘッダー オプション フラグをクリアします。 既定のフラグはキー フレームのみです。 カメラ ミニドライバーは、キー フレーム以外のものを示す必要がある場合は、ストリーム ヘッダー オプション フラグを適切に設定する必要があります。
元の USBCAMD は CamProcessRawVideoFrameEx を呼び出しません。
この関数は省略可能です。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | usbcamdi.h (Usbcamdi.h を含む) |
IRQL | PASSIVE_LEVEL |