USB_BUS_INTERFACE_USBDI_V3 Struktur (usbbusif.h)

Die USB_BUS_INTERFACE_USBDI_V3-Struktur wird vom USB-Hubtreiber bereitgestellt, damit USB-Clients direkte Anrufe an den Hubtreiber tätigen können, ohne IRPs zuzuweisen.

Syntax

typedef struct _USB_BUS_INTERFACE_USBDI_V3 {
  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;
  PUSB_BUSIFFN_ENUM_LOG_ENTRY        EnumLogEntry;
  PUSB_BUSIFFN_QUERY_BUS_TIME_EX     QueryBusTimeEx;
  PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE QueryControllerType;
} USB_BUS_INTERFACE_USBDI_V3, *PUSB_BUS_INTERFACE_USBDI_V3;

Member

Size

Gibt die Größe des Puffers in Bytes an, der die Schnittstellenzeiger enthält.

Version

Gibt bei der Eingabe die Version der Schnittstelle an. Die Werte, die dieser Member annehmen kann, sind wie folgt.

Wert Bedeutung
USB_BUSIF_USBDI_VERSION_0 Version 0 der Schnittstelle.
USB_BUSIF_USBDI_VERSION_1 Version 1 der Schnittstelle.
USB_BUSIF_USBDI_VERSION_2 Version 2 der Schnittstelle.
USB_BUSIF_USBDI_VERSION_3 Version 3 der Schnittstelle.

BusContext

Enthält Informationen, die den USB-Bus und den USB-Bustreiber beschreiben, der diese Schnittstelle verfügbar macht. Dies ist eine undurchsichtige Entität, die der Aufrufer an die Schnittstellenroutinen übergeben muss.

InterfaceReference

Zeiger auf eine Routine, die die Anzahl der Verweise auf diese Schnittstelle erhöht. Weitere Informationen zu dieser Routine finden Sie unter InterfaceReference.

InterfaceDereference

Zeiger auf eine Routine, die die Anzahl der Verweise auf diese Schnittstelle erhöht. Weitere Informationen zu dieser Routine finden Sie unter InterfaceDereference.

GetUSBDIVersion

Zeiger auf eine Routine, die die Versionsnummer der USB-Schnittstelle, die Versionsnummer der USB-Spezifikation, die die Schnittstelle definiert, sowie Informationen zu Hostcontrollerfunktionen zurückgibt. Diese Routine gibt die höchste USBDI-Schnittstellenversion zurück, die vom Porttreiber unterstützt wird. Weitere Informationen zu dieser Routine finden Sie unter GetUSBDIVersion.

QueryBusTime

Zeiger auf eine Routine, die die aktuelle 32-Bit-USB-Framenummer zurückgibt. Diese Routine ersetzt die USBD_QueryBusTime-Funktion , die von usbd.sys bereitgestellt wird. Weitere Informationen zu dieser Routine finden Sie unter QueryBusTime.

SubmitIsoOutUrb

Reserviert. Darf nicht verwendet werden.

QueryBusInformation

Zeiger auf eine Routine, die Informationen zum Bus abruft. Die zurückgegebenen Informationen hängen vom Wert des Members Level ab. Wenn Ebene 0 ist, gibt diese Routine Informationen zur Busbandbreite zurück. Wenn Ebene 1 ist, werden Informationen zur Busbandbreite und den symbolischen Namen des Hostcontrollers zurückgegeben. Diese Routine ersetzt die von usbd.sys bereitgestellte USBD_QueryBusInformation-Funktion. Weitere Informationen zu dieser Routine finden Sie unter QueryBusInformation.

IsDeviceHighSpeed

Zeiger auf eine Routine, die bestimmt, ob das USB-Gerät mit hoher Geschwindigkeit arbeitet. Diese Routine gibt TRUE zurück, wenn das USB-Gerät mit usb 2.0-kompatiblem Hochgeschwindigkeitsgerät betrieben wird. Gibt andernfalls FALSE zurück. Weitere Informationen zu dieser Routine finden Sie unter IsDeviceHighSpeed.

EnumLogEntry

Reserviert. Darf nicht verwendet werden.

QueryBusTimeEx

Diese Routine wird nicht implementiert.

QueryControllerType

Zeiger auf eine Routine, die Informationen zum USB-Hostcontroller zurückgibt, an den das USB-Gerät angeschlossen ist. Weitere Informationen zu dieser Routine finden Sie unter QueryControllerType.

Hinweise

Die IsDeviceHighSpeed-Routine gibt nicht an, ob ein Gerät zum Hochgeschwindigkeitsbetrieb fähig ist, sondern ob es tatsächlich mit hoher Geschwindigkeit arbeitet.

Die Routinen in dieser Struktur müssen unter IRQL >= DISPATCH_LEVEL aufgerufen werden können.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista und höhere Betriebssysteme.
Kopfzeile usbbusif.h (include Usbbusif.h)

Weitere Informationen

Bustreiberschnittstellenroutinen für USB-Clienttreiber

USB-Strukturen