PCAM_PROCESS_RAW_FRAME_ROUTINE callback function (usbcamdi.h)
[CamProcessRawVideoFrame is not supported and may be altered or unavailable in the future. Instead, use CamProcessRawVideoFrameEx. ]
A camera minidriver's CamProcessRawVideoFrame callback function decodes a raw video frame.
Syntax
PCAM_PROCESS_RAW_FRAME_ROUTINE PcamProcessRawFrameRoutine;
NTSTATUS PcamProcessRawFrameRoutine(
PDEVICE_OBJECT BusDeviceObject,
PVOID DeviceContext,
PVOID FrameContext,
PVOID FrameBuffer,
ULONG FrameLength,
PVOID RawFrameBuffer,
ULONG RawFrameLength,
ULONG NumberOfPackets,
PULONG BytesReturned
)
{...}
Parameters
BusDeviceObject
Pointer to the camera minidriver's device object created by the USB hub.
DeviceContext
Pointer to the camera minidriver's device context.
FrameContext
Pointer to the camera minidriver's frame context.
FrameBuffer
Pointer to the buffer that receives the final processed video frame. See the Remarks section for more information about how USBCAMD uses this parameter.
FrameLength
Specifies the length of the frame buffer (from the original read request) in bytes.
RawFrameBuffer
Pointer to the buffer containing the received USB packets. See the Remarks section for more information about how USBCAMD uses this parameter.
RawFrameLength
Specifies the length of RawFrameBuffer in bytes.
NumberOfPackets
Specifies the number of USB packets received into RawFrameBuffer.
BytesReturned
Pointer to the number of bytes transferred. The minidriver must set this to zero if it encounters any errors during processing, as described in Data Flow Using Isochronous Pipes. See the Remarks section for more information about how USBCAMD uses this parameter.
Return value
CamProcessRawVideoFrame returns STATUS_SUCCESS or an appropriate error code.
Remarks
Before USBCAMD calls the minidriver's CamProcessRawVideoFrame callback, it sets the first DWORD in the buffer pointed to by the FrameBuffer parameter to the value 0xdeadbeef. After calling the minidriver's CamProcessRawVideoFrame callback USBCAMD checks the first DWORD in the buffer pointed to by the FrameBuffer parameter for the value 0xdeadbeef to determine if CamProcessRawVideoFrame successfully copied the video frame from the buffer pointed to by the RawFrameBuffer parameter into the buffer pointed to by the FrameBuffer parameter.
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).
This function is optional.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | usbcamdi.h (include Usbcamdi.h) |
IRQL | PASSIVE_LEVEL |