共用方式為


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

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

ActualRawFrameLength

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

StreamNumber

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

傳回值

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

言論

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

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

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

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

原始 USBCAMD 不會呼叫 CamProcessRawVideoFrameEx

此函式是選擇性的。

要求

要求 價值
目標平臺 桌面
標頭 usbcamdi.h (包括 Usbcamdi.h)
IRQL PASSIVE_LEVEL