REGISTER_COMPOSITE_DEVICE structure (usbdlib.h)

The REGISTER_COMPOSITE_DEVICE structure is used with the IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE I/O control request to register a parent driver of a Universal Serial Bus (USB) multi-function device (composite driver) with the USB driver stack.

To initialize the REGISTER_COMPOSITE_DEVICE structure, the composite driver must call the USBD_BuildRegisterCompositeDevice routine.

Syntax

typedef struct _REGISTER_COMPOSITE_DEVICE {
  USHORT                        Version;
  USHORT                        Size;
  USBDI_HANDLE                  Reserved;
  COMPOSITE_DEVICE_CAPABILITIES CapabilityFlags;
  ULONG                         FunctionCount;
} REGISTER_COMPOSITE_DEVICE, *PREGISTER_COMPOSITE_DEVICE;

Members

Version

The version of this structure. USBD_BuildRegisterCompositeDevice sets this member.

Size

The size of this structure. USBD_BuildRegisterCompositeDevice sets this member.

Reserved

Reserved. USBD_BuildRegisterCompositeDevice sets this member.

CapabilityFlags

The capabilities that are supported by the composite driver. To specify that function suspend is supported by the composite driver, first initialize the COMPOSITE_DEVICE_CAPABILITIES structure by calling the COMPOSITE_DEVICE_CAPABILITIES_INIT macro. Then, set the CompositeDeviceCapabilityFunctionSuspend member of COMPOSITE_DEVICE_CAPABILITIES to 1. Finally, call USBD_BuildRegisterCompositeDevice and pass the initialized structure in the CapabilityFlags parameter.

FunctionCount

The number of functions supported by the composite device. The FunctionCount value must not exceed 255.

Requirements

Requirement Value
Minimum supported client Windows 8
Header usbdlib.h

See also

COMPOSITE_DEVICE_CAPABILITIES

COMPOSITE_DEVICE_CAPABILITIES_INIT

IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE

USBD_BuildRegisterCompositeDevice