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

傳送位元組數目的指標。 如果迷你驅動程式在處理期間遇到任何錯誤,則必須將此設定為零,如 使用 Isochronous Pipes 的數據流中所述。 如需 USBCAMD 如何使用此參數的詳細資訊,請參閱一節。

ActualRawFrameLength

包含從相機接收的實際緩衝區長度。 這個值是以位元組為單位指定。

StreamNumber

指出與此框架相關聯的數據流編號。

傳回值

CamProcessRawVideoFrameEx 會傳回STATUS_SUCCESS或適當的錯誤碼。

備註

在 USBCAMD 呼叫 minidriver 的 CamProcessRawVideoFrameEx 回呼之前,它會將 FrameBuffer 參數指向的緩衝區中的第一個 DWORD 設定為值0xdeadbeef。呼叫 minidriver 的 CamProcessRawVideoFrameEx 回呼 USBCAMD 之後,會檢查 FrameBuffer 參數所指向之緩衝區中的第一個 DWORD,0xdeadbeef,以判斷 CamProcessRawVideoFrameEx 是否已從 RawFrameBuffer 參數指向的緩衝區成功將視訊畫面複製到 FrameBuffer 參數所指向的緩衝區。

如果在傳遞至 USBCAMD_InitializeNewInterface 函式的 CamControlFlag 自變數中設定下列任一位,則不會呼叫此函式:

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

USBCAMD 會先清除數據流標頭選項旗標,再將原始畫面傳遞至minidriver。 默認旗標僅是主要畫面格。 如果相機迷你驅動程式需要指出主要畫面格以外的任何專案,應該適當地設定數據流標頭選項旗標。

原始 USBCAMD 不會呼叫 CamProcessRawVideoFrameEx

此函式是選擇性的。

規格需求

需求
目標平台 桌面
標頭 usbcamdi.h (包含 Usbcamdi.h)
IRQL PASSIVE_LEVEL