USB_BUS_INTERFACE_USBDI_V0 structure (usbbusif.h)

The USB_BUS_INTERFACE_USBDI_V0 structure is provided by the USB hub driver to allow USB clients to make direct calls to the hub driver without allocating IRPs.

Syntax

typedef struct _USB_BUS_INTERFACE_USBDI_V0 {
  USHORT                             Size;
  USHORT                             Version;
  PVOID                              BusContext;
  PINTERFACE_REFERENCE               InterfaceReference;
  PINTERFACE_DEREFERENCE             InterfaceDereference;
  PUSB_BUSIFFN_GETUSBDI_VERSION      GetUSBDIVersion;
  PUSB_BUSIFFN_QUERY_BUS_TIME        QueryBusTime;
  PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB    SubmitIsoOutUrb;
  PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation;
} USB_BUS_INTERFACE_USBDI_V0, *PUSB_BUS_INTERFACE_USBDI_V0;

Members

Size

Specifies the size in bytes of the buffer that holds the interface pointers.

Version

Indicates, on input, the version of the interface. This member should have one of the following values:

Value Meaning
USB_BUSIF_USBDI_VERSION_0 Version 0 of the interface.
USB_BUSIF_USBDI_VERSION_1 Version 1 of the interface.
USB_BUSIF_USBDI_VERSION_2 Version 2 of the interface.
USB_BUSIF_USBDI_VERSION_3 Version 3 of the interface.

BusContext

Contains information that describes the USB bus and the USB bus driver that exposes this interface. This is an opaque entity that the caller must pass to the interface routines.

InterfaceReference

Pointer to a routine that increments the number of references to this interface. For more information about this routine, see InterfaceReference.

InterfaceDereference

Pointer to a routine that decrements the number of references to this interface. For more information about this routine, see InterfaceDereference.

GetUSBDIVersion

Pointer to a routine that returns the USB interface version number, the version number of USB specification that defines the interface, along with host controller capabilities information. This routine returns the highest USBDI interface version that is supported by the port driver. For more information about this routine, see GetUSBDIVersion.

QueryBusTime

Pointer to a routine that returns the current 32-bit USB frame number. This routine replaces the USBD_QueryBusTime function provided by usbd.sys. For more information about this routine, see QueryBusTime.

SubmitIsoOutUrb

Reserved. Do not use.

QueryBusInformation

Pointer to a routine that returns information about the bus. The information that is returned depends on the value of the Level member. If Level is 0, this routine returns bus bandwidth information. If Level is 1, it returns bus bandwidth information and the host controller's symbolic name. This routine replaces the USBD_QueryBusInformation function provided by usbd.sys. For more information about this routine, see QueryBusInformation.

Remarks

For information about how to query for these interfaces, see Querying for USB Interfaces. Callers of the routines in this structure can be running at IRQL <= DISPATCH_LEVEL.

Requirements

Requirement Value
Header usbbusif.h (include Usbbusif.h)

See also

Bus Driver Interface Routines for USB Client Drivers

USB Structures