PFNUSBCAMD_SetIsoPipeState callback function (usbcamdi.h)

The USBCAMD_SetIsoPipeState service permits the camera minidriver to control the streaming state on the isochronous pipe.

Syntax

PFNUSBCAMD_SetIsoPipeState PfnusbcamdSetisopipestate;

NTSTATUS PfnusbcamdSetisopipestate(
  [in] PVOID DeviceContext,
  [in] ULONG PipeStateFlags
)
{...}

Parameters

[in] DeviceContext

Pointer to device-specific context.

[in] PipeStateFlags

Specifies the isochronous pipe state. This argument should be set to either of the following values:

Flag Meaning
USBCAMD_STOP_STREAM This flags indicates to stop streaming.
USBCAMD_START_STREAM This flags indicates to start streaming.

Return value

USBCAMD_SetIsoPipeState returns STATUS_SUCCESS if the call was successful. Other possible error codes include:

Return code Description
STATUS_INVALID_PARAMETER The requested pipe state is the same as the current pipe state.
STATUS_PENDING The pipe state change is deferred.
STATUS_INSUFFICIENT_RESOURCES There are insufficient resources to allocate a work item to change the pipe state.

Remarks

Note that the streaming state on the isochronous pipe works differently from the streaming state in the stream class and in Microsoft DirectShow. It is possible to stop the isochronous pipe from streaming for a short period while the overall video capture graph is still in a Run state.

This function is used to enable dual-mode cameras. In a dual-mode camera, if there is a request to get still data while streaming is in progress, the stream must be stopped on the isochronous pipe. The still call is then serviced and then the isochronous stream must be restarted, all while the overall stream class/DirectShow graph is still in a Run state.

Using this function does not enable you to change the alternate setting within the USB video streaming interface or the channel bandwidth. The isochronous stream must be closed before the alternate setting is changed.

USBCAMD_SetIsoPipeState is not available in USBCAMD version 1.0.

Requirements

Requirement Value
Target Platform Desktop
Header usbcamdi.h (include Usbcamdi.h)

See also

USBCAMD_INTERFACE