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 in den Anmerkungen.

[in] CapabilityBufferLength

Die Länge des Puffers in Bytes, auf den CapabilityBufferverweist.

[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 angegeben werden. Dieser Parameter entspricht dem OutputBuffer Parameter der USBD_QueryUsbCapability Routine.

[out, optional] ResultLength

Ein Zeiger auf eine Position, die 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
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 eine CapabilityBuffer- bereitgestellt, aber CapabilityBufferLength null ist.
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-Wertezurückgeben.

Bemerkungen

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

WdfUsbTargetDeviceQueryUsbCapability- muss aufgerufen werden, nachdem die EvtDevicePrepareHardware Rückruffunktion 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 zur verketteten MDLs-Funktion im USB-Treiberstapel finden Sie unter How to Send Chained MDLs.

Diese GUID gilt nur für KMDF-Treiber.

GUID_USB_CAPABILITY_STATIC_STREAMS Während USB 2.0 und frühere Versionen 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 Datenströmen 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 Spezifikation Universal Serial Bus (USB) 3.0 definiert ein neues Feature, das als Funktions suspend bezeichnet wird. Das Feature ermöglicht es einer einzelnen Funktion eines zusammengesetzten Geräts, unabhängig von anderen Funktionen einen Energiesparzustand einzugeben.

Weitere Informationen zum Anhalten von Funktionen finden Sie unter Implementieren von Funktions suspend in einem zusammengesetzten Treiber.

Diese GUID gilt nur für KMDF-Treiber.

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

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 arbeitet.

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

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

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
Zielplattform- Universal
Minimale KMDF-Version 1.11
Mindest-UMDF-Version 2.0
Header- wdfusb.h (include Wdfusb.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf)

Siehe auch

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation