Freigeben über


WdfUsbTargetDeviceQueryUsbCapability-Funktion (wdfusb.h)

[Gilt für KMDF und UMDF]

Die WdfUsbTargetDeviceQueryUsbCapability-Methode bestimmt, ob der Hostcontroller und der USB-Treiberstapel eine bestimmte Funktion unterstützen.

Syntax

NTSTATUS WdfUsbTargetDeviceQueryUsbCapability(
  [in]            WDFUSBDEVICE UsbDevice,
  [in]            const GUID   *CapabilityType,
  [in]            ULONG        CapabilityBufferLength,
  [out, optional] PVOID        CapabilityBuffer,
  [out, optional] PULONG       ResultLength
);

Parameter

[in] UsbDevice

Ein Handle für ein USB-Geräteobjekt.

[in] CapabilityType

Ein Zeiger auf eine GUID, die die Funktion darstellt, über die der Clienttreiber Informationen abrufen möchte. Die möglichen PGUID-Werte sind wie folgt:

  • GUID_USB_CAPABILITY_CHAINED_MDLS
  • GUID_USB_CAPABILITY_STATIC_STREAMS
  • GUID_USB_CAPABILITY_SELECTIVE_SUSPEND
  • GUID_USB_CAPABILITY_FUNCTION_SUSPEND
  • GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE
  • GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE
Weitere Informationen finden Sie unter Hinweise.

[in] CapabilityBufferLength

Länge des Puffers in Byte, auf den von CapabilityBuffer verwiesen wird.

[out, optional] CapabilityBuffer

Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, um die angeforderte USB-Funktion zu empfangen. Dieser Parameter ist optional. Wenn CapabilityBufferLength null ist, muss dieser Parameter NULL sein. Wenn CapabilityBufferLength ungleich null ist, muss dieser Parameter entsprechend angegeben werden. Dieser Parameter entspricht dem OutputBuffer-Parameter der USBD_QueryUsbCapability Routine.

[out, optional] ResultLength

Ein Zeiger auf einen Speicherort, der die Größe der zurückgegebenen Funktion in Byte enthält. Dieser Parameter ist optional.

Rückgabewert

WdfUsbTargetDeviceQueryUsbCapability gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls kann diese Methode einen der folgenden Werte zurückgeben:

Rückgabecode Beschreibung
STATUS_INVALID_DEVICE_STATE
Das USB-Geräteobjekthandle ist ungültig.
STATUS_INSUFFICIENT_RESOURCES
Es war nicht genügend Arbeitsspeicher verfügbar.
STATUS_INVALID_PARAMETER
Der Aufrufer hat einen ungültigen Parameterwert übergeben.
  • UsbDevice oder CapabilityType ist NULL.
  • CapabilityBuffer ist NULL, aber CapabilityBufferLength enthält einen Wert ungleich null. Umgekehrt hat der Aufrufer einen CapabilityBuffer bereitgestellt, aber CapabilityBufferLength ist null.
STATUS_NOT_IMPLEMENTED
Die angegebene Funktion wird vom zugrunde liegenden USB-Treiberstapel nicht unterstützt.
STATUS_NOT_SUPPORTED
Die angegebene Funktion wird von der Hostcontrollerhardware nicht unterstützt.
 

Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.

Hinweise

Vor dem Aufrufen von WdfUsbTargetDeviceQueryUsbCapability muss der Treiber WdfUsbTargetDeviceCreateWithParameters aufrufen, um sich beim zugrunde liegenden USB-Treiberstapel zu registrieren.

WdfUsbTargetDeviceQueryUsbCapability muss aufgerufen werden, nachdem die Rückruffunktion EvtDevicePrepareHardware des Treibers aufgerufen wurde.

In der folgenden Tabelle werden die USB-spezifischen Funktionen beschrieben, die ein KMDF-basierter USB-Clienttreiber über einen WdfUsbTargetDeviceQueryUsbCapability-Aufruf abfragen kann.

Funktions-GUID BESCHREIBUNG
GUID_USB_CAPABILITY_CHAINED_MDLS Der neue USB-Treiberstapel in Windows 8 kann eine verkettete MDL (siehe MDL) von einem KMDF-basierten USB-Clienttreiber akzeptieren.

Weitere Informationen zu den Funktionen für verkettete MDLs im USB-Treiberstapel finden Sie unter Senden verketteter MDLs.

Diese GUID gilt nur für KMDF-Treiber.

GUID_USB_CAPABILITY_STATIC_STREAMS Während USB 2.0 und früher nur das Senden eines einzelnen Datenstroms über einen Massenendpunkt unterstützen, ermöglicht USB 3.0 das Senden und Empfangen mehrerer Datenströme über einen Massenendpunkt.

Weitere Informationen zum Öffnen von Streams finden Sie unter Öffnen und Schließen statischer Datenströme in einem USB-Massenendpunkt.

Diese GUID gilt nur für KMDF-Treiber.

GUID_USB_CAPABILITY_FUNCTION_SUSPEND Die Usb 3.0-Spezifikation (Universal Serial Bus) definiert ein neues Feature namens Funktions suspend. Das Feature ermöglicht es einer einzelnen Funktion eines zusammengesetzten Geräts, unabhängig von anderen Funktionen in einen Energiesparzustand zu wechseln.

Weitere Informationen zum Angehalten von Funktionen finden Sie unter Implementieren des Anhaltens von Funktionen in einem zusammengesetzten Treiber.

Diese GUID gilt nur für KMDF-Treiber.

GUID_USB_CAPABILITY_SELECTIVE_SUSPEND Informationen zum selektiven Anhalten finden Sie unter Selektives Anhalten von USB.

Diese GUID gilt nur für KMDF-Treiber.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE Bestimmt, ob der Bus mit hoher Geschwindigkeit oder höher betrieben wird.

Diese GUID gilt für KMDF- und UMDF-Treiber.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE Bestimmt, ob der Bus mit SuperSpeed oder höher betrieben wird.

Diese GUID gilt für KMDF- und UMDF-Treiber.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Universell
KMDF-Mindestversion 1.11
UMDF-Mindestversion 2.0
Kopfzeile wdfusb.h (wdfusb.h einschließen)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf)

Weitere Informationen

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation