次の方法で共有


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 がチェックされ、 CamProcessRawVideoFrameExRawFrameBuffer パラメーターが指すバッファーから FrameBuffer パラメーターが指すバッファーにビデオ フレームが正常にコピーされたかどうかを判断します。

USBCAMD_InitializeNewInterface関数に渡される CamControlFlag 引数に次のいずれかのビットが設定されている場合、 この関数は 呼び出されません。

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

USBCAMD は、未加工のフレームをミニドライバーに渡す前に、ストリーム ヘッダー オプション フラグをクリアします。 既定のフラグはキー フレームのみです。 カメラ ミニドライバーは、キー フレーム以外のものを示す必要がある場合は、ストリーム ヘッダー オプション フラグを適切に設定する必要があります。

元の USBCAMD は CamProcessRawVideoFrameEx を呼び出しません。

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

要件

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