共用方式為


使用異地管道的資料流程

USBCAMD2 會藉由要求兩個 32 封包的傳輸,開始在連續管道上串流。 每個封包的大小上限都對應至所選替代設定的大小上限。

注意 在連續管道上進行串流處理與 Microsoft DirectShow 串流無關。

雙緩衝區無時序傳輸要求會持續提交至 USBCAMD2,而且只有在發生下列兩種情況之一時才會停止:

  1. (KSSTATE_STOP) 發出停止 DirectShow 資料流程狀態。

  2. 相機迷你驅動程式會要求 USBCAMD2 在呼叫 USBCAMD_SetIsoPipeState 中傳遞PipeStateFlags參數中的USBCAMD_STOP_STREAMING旗標,以停止連續串流。

串流正在進行時,USBCAMD2 和相機迷你驅動程式會重複下列程式,直到串流停止為止:

  1. USBCAMD2 會針對 USBCAMD2 從 USB 匯流排驅動程式接收的每個封包呼叫相機 minidriver 的 CamProcessUSBPacketEx 回呼函式, (IRQL = DISPATCH_LEVEL) 。 相機迷你驅動程式必須在發生錯誤狀況時設定適當的錯誤旗標。 如果使用CamProcessUSBPacketExFrameComplete參數偵測到新的視訊畫面開頭,minidriver 也必須設定新的視訊畫面旗標。

  2. 在相機迷你驅動程式判斷視訊畫面完成之後,如果需要執行色彩空間轉換或解壓縮,USBCAMD2 會從背景工作執行緒的內容呼叫相機 minidriver 的 CamProcessRawVideoFrameEx 回呼函式 (,) 來處理視訊畫面。 USBCAMD2 會將完整的原始畫面傳回 至stream.sys 類別驅動程式,供 IRQL = PASSIVE_LEVEL的相機迷你驅動程式處理。 例如,如果畫面資料不足或解壓縮期間發生錯誤,例如,CamProcessRawVideoFrameExBytesReturned參數必須設定為 0。