PCAM_PROCESS_PACKET_ROUTINE callback function (usbcamdi.h)
[CamProcessUSBPacket is not supported and may be altered or unavailable in the future. Instead, use CamProcessUSBPacketEx. ]
A camera minidriver's CamProcessUSBPacket callback function processes a USB packet.
Syntax
PCAM_PROCESS_PACKET_ROUTINE PcamProcessPacketRoutine;
ULONG PcamProcessPacketRoutine(
PDEVICE_OBJECT BusDeviceObject,
PVOID DeviceContext,
PVOID CurrentFrameContext,
PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket,
PVOID SyncBuffer,
PUSBD_ISO_PACKET_DESCRIPTOR DataPacket,
PVOID DataBuffer,
PBOOLEAN FrameComplete,
PBOOLEAN NextFrameIsStill
)
{...}
Parameters
BusDeviceObject
Pointer to the camera minidriver's device object created by the USB hub.
DeviceContext
Pointer to the camera minidriver's device context.
CurrentFrameContext
Pointer to the minidriver's frame context.
SyncPacket
Pointer to a USBD_ISO_PACKET_DESCRIPTOR structure from the sync pipe. This value is NULL if the interface has only one pipe.
SyncBuffer
Pointer to the data for the SyncPacket.
DataPacket
Pointer to a USBD_ISO_PACKET_DESCRIPTOR structure from the data pipe.
DataBuffer
Pointer to DataPacket.
FrameComplete
Pointer to a BOOLEAN value that the camera minidriver sets to indicate whether this is the first data packet for a new video frame. Set to TRUE if this is the first data packet for a new video frame.
NextFrameIsStill
Pointer to a BOOLEAN value that the camera minidriver sets to indicate whether the next frame is a still frame or not. This value should be set to FALSE if the video stream is providing a live image or TRUE if the next frame is a still image or an image capture stream.
Return value
This callback function returns a ULONG that indicates the number of bytes that should be copied into the buffer (RawFrameBuffer or FrameBuffer).
Remarks
Camera minidrivers that must maintain backward compatibility with the original USBCAMD must use the USBCAMD_DEVICE_DATA structure and its associated callback functions (that is, callback functions that do not contain the "Ex" suffix).
The minidriver should complete this function as quickly as possible. Image processing should be deferred to the CamProcessRawVideoFrame function.
This function is optional.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | usbcamdi.h (include Usbcamdi.h) |
IRQL | DISPATCH_LEVEL |