PCAM_CONFIGURE_ROUTINE_EX callback function (usbcamdi.h)

A camera minidriver's CamConfigureEx callback function configures the isochronous streaming interface.

Syntax

PCAM_CONFIGURE_ROUTINE_EX PcamConfigureRoutineEx;

NTSTATUS PcamConfigureRoutineEx(
  PDEVICE_OBJECT BusDeviceObject,
  PVOID DeviceContext,
  PUSBD_INTERFACE_INFORMATION Interface,
  PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
  ULONG PipeConfigListSize,
  PUSBCAMD_Pipe_Config_Descriptor PipeConfig,
  PUSB_DEVICE_DESCRIPTOR DeviceDescriptor
)
{...}

Parameters

BusDeviceObject

Pointer to the camera minidriver's device object created by the USB hub.

DeviceContext

Pointer to the camera minidriver's device context.

Interface

Pointer to the USBD_INTERFACE_INFORMATION structure initialized with the proper values for a SELECT_INTERFACE URB request. This interface structure corresponds to a single isochronous interface on the device.

ConfigurationDescriptor

Pointer to the USB_CONFIGURATION_DESCRIPTOR for this device.

PipeConfigListSize

Specifies the number of elements in the PipeConfig array.

PipeConfig

Pointer to a USBCAMD_Pipe_Config_Descriptor array describing the association between pipes and streams.

DeviceDescriptor

Pointer to the USB_DEVICE_DESCRIPTOR for this device.

Return value

CamConfigureEx returns STATUS_SUCCESS or an appropriate error code.

Remarks

Camera minidrivers use CamConfigureEx to inform USBCAMD about the relationship between discovered pipes and streams.

USBCAMD calls the CamConfigureEx callback function to configure the isochronous streaming interface. After this function returns, USBCAMD can be notified of which interface and which alternate setting within the USB video streaming interface to use for the idle state.

USBCAMD requires that the camera must have a single USB configuration description, and all alternate settings within the USB video streaming interface must have the same number and type of pipes.

The original USBCAMD does not call CamConfigureEx.

This function is required.

Requirements

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

See also

USBCAMD_DEVICE_DATA2

USBCAMD_Pipe_Config_Descriptor

USBD_INTERFACE_INFORMATION

USB_CONFIGURATION_DESCRIPTOR

USB_DEVICE_DESCRIPTOR