USB_BUS_INTERFACE_USBDI_V1 structure (usbbusif.h)
The USB_BUS_INTERFACE_USBDI_V1 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_V1 {
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;
PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed;
} USB_BUS_INTERFACE_USBDI_V1, *PUSB_BUS_INTERFACE_USBDI_V1;
Members
Size
Specifies the size in bytes of the buffer that holds the interface pointers.
Version
Indicates, on input, the version of the interface. The values that this member can take are as follows.
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 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 retrieves 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.
IsDeviceHighSpeed
Pointer to a routine that determines whether the USB device is operating at high speed. This routine returns TRUE if the USB device is operating at high speed (USB 2.0-compliant device). Otherwise this routine returns FALSE. For more information about this routine, see IsDeviceHighSpeed.
Remarks
The IsDeviceHighSpeed member does not indicate whether a device is capable of high speed operation, but rather whether it is in fact operating at high speed.
The routines in this structure must be callable at IRQL >= DISPATCH_LEVEL.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available in Microsoft Windows XP and later operating systems. |
Header | usbbusif.h (include Usbbusif.h) |