PCAM_PROCESS_PACKET_ROUTINE_EX回呼函式 (usbcamdi.h)
相機迷你驅動程式的 CamProcessUSBPacketEx 回呼函式會處理 USB 封包。
語法
PCAM_PROCESS_PACKET_ROUTINE_EX PcamProcessPacketRoutineEx;
ULONG PcamProcessPacketRoutineEx(
PDEVICE_OBJECT BusDeviceObject,
PVOID DeviceContext,
PVOID CurrentFrameContext,
PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket,
PVOID SyncBuffer,
PUSBD_ISO_PACKET_DESCRIPTOR DataPacket,
PVOID DataBuffer,
PBOOLEAN FrameComplete,
PULONG PacketFlag,
PULONG ValidDataOffset
)
{...}
參數
BusDeviceObject
USB 中樞所建立相機迷你驅動程式裝置物件的指標。
DeviceContext
相機迷你驅動程式裝置內容的指標。
CurrentFrameContext
相機迷你驅動程式框架內容的指標。
SyncPacket
從同步管道 USBD_ISO_PACKET_DESCRIPTOR 結構的指標。 如果介面只有一個管道,則此值為 NULL 。
SyncBuffer
SyncPacket 數據的指標。
DataPacket
從數據管道指定連續封包描述元。
DataBuffer
DataPacket 的指標。
FrameComplete
數字相機迷你驅動程式設定的 BOOLEAN 值指標,指出這是否為新視訊畫面的第一個數據封包。
PacketFlag
迷你驅動程式設定的值指標,以指出目前框架的內容。 它應該設定為下列其中一個值:
旗標 | 意義 |
---|---|
USBCAMD_PROCESSPACKETEX_DropFrame | 目前的框架無法復原。 應該回收讀取 IRP。 |
USBCAMD_PROCESSPACKETEX_NextFrameIsStill | 畫面是仍然影像。 |
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill | 目前框架適用於仍在釘選的畫面。 |
ValidDataOffset
ULONG 值的指標,指出封包開頭的位移。 USBCAMD 應該從這個位移啟動複本。 這會在頻內訊號的情況下排除額外的緩衝區複本。 如果相機未使用頻內訊號, 則 ValidDataOffset 應設定為零。
傳回值
此函式會傳回應該複製的位元元數目。
備註
minidriver 應該儘快完成 CamProcessUSBPacketEx 函式。 影像處理應延後至 CamProcessRawVideoFrameEx 函式。
此回呼函式僅與連續管道搭配使用, (視訊或仍在串流) 。
原始 USBCAMD 不會呼叫 CamProcessUSBPacketEx。
此函式是選擇性的。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | usbcamdi.h (包含 Usbcamdi.h) |
IRQL | DISPATCH_LEVEL |