共用方式為


WdfUsbTargetDeviceQueryUsbCapability 函式 (wdfusb.h)

[適用於 KMDF 和 UMDF]

WdfUsbTargetDeviceQueryUsbCapability 方法會決定主控制器和 USB 驅動程式堆疊是否支援特定功能。

語法

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

參數

[in] UsbDevice

USB 裝置物件的句柄。

[in] CapabilityType

GUID 的指標,表示用戶端驅動程式想要擷取資訊的功能。 可能的 PGUID 值如下所示:

  • 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
如需詳細資訊,請參閱。

[in] CapabilityBufferLength

CapabilityBuffer 所指向之緩衝區的長度,以位元組為單位。

[out, optional] CapabilityBuffer

呼叫端配置的緩衝區指標,可接收要求的USB功能。 這是選擇性參數。 如果 CapabilityBufferLength 為零,此參數必須是 NULL。 同樣地,如果 CapabilityBufferLength 不是零,則必須提供此參數。 此參數對應於USBD_QueryUsbCapability例程的 OutputBuffer 參數。

[out, optional] ResultLength

包含傳回功能大小之位置的指標,以位元組為單位。 這是選擇性參數。

傳回值

如果作業成功,WdfUsbTargetDeviceQueryUsbCapability 會傳回STATUS_SUCCESS。 否則,此方法可以傳回下列其中一個值:

傳回碼 Description
STATUS_INVALID_DEVICE_STATE
USB 裝置物件句柄無效。
STATUS_INSUFFICIENT_RESOURCES
記憶體不足。
STATUS_INVALID_PARAMETER
呼叫端傳遞了無效的參數值。
  • UsbDeviceCapabilityType 為 NULL。
  • CapabilityBuffer 為 NULL,但 CapabilityBufferLength 包含非零值。 相反地,呼叫端提供了 CapabilityBuffer ,但 CapabilityBufferLength 為零。
STATUS_NOT_IMPLEMENTED
基礎 USB 驅動程式堆疊不支援指定的功能。
STATUS_NOT_SUPPORTED
主機控制器硬體不支援指定的功能。
 

這個方法也可能傳回其他 NTSTATUS值

備註

呼叫 WdfUsbTargetDeviceQueryUsbCapability 之前,驅動程式必須呼叫 WdfUsbTargetDeviceCreateWithParameters ,才能向基礎 USB 驅動程式堆棧註冊。

呼叫驅動程式的 EvtDevicePrepareHardware 回呼函式之後,必須呼叫 WdfUsbTargetDeviceQueryUsbCapability

下表描述 KMDF 型 USB 用戶端驅動程式可以透過 WdfUsbTargetDeviceQueryUsbCapability 呼叫查詢的 USB 特定功能。

功能 GUID Description
GUID_USB_CAPABILITY_CHAINED_MDLS Windows 8 中新的 USB 驅動程式堆疊能夠接受鏈結的 MDL (請參閱來自 KMDF 型 USB 用戶端驅動程式的 MDL) 。

如需 USB 驅動程式堆疊中鏈結 MDL 功能的詳細資訊,請參閱 如何傳送鏈結的 MDL

此 GUID 僅適用於 KMDF 驅動程式。

GUID_USB_CAPABILITY_STATIC_STREAMS USB 2.0 和更早版本僅支援透過大量端點傳送單一數據流,但 USB 3.0 允許透過大量端點傳送和接收多個數據流。

如需開啟數據流的詳細資訊,請參閱 如何在USB大量端點中開啟和關閉靜態數據流

此 GUID 僅適用於 KMDF 驅動程式。

GUID_USB_CAPABILITY_FUNCTION_SUSPEND 通用序列總線 (USB) 3.0 規格會定義稱為「函式暫停」的新功能。 此功能可讓複合裝置的個別函式進入低電源狀態,而與其他函式無關。

如需函式暫止的詳細資訊,請參閱 如何在複合驅動程式中實作函式暫停

此 GUID 僅適用於 KMDF 驅動程式。

GUID_USB_CAPABILITY_SELECTIVE_SUSPEND 如需選擇性暫停的相關信息,請參閱 USB 選擇性暫停

此 GUID 僅適用於 KMDF 驅動程式。

GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE 判斷總線是以高速或更高速度運作。

此 GUID 適用於 KMDF 和 UMDF 驅動程式。

GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE 判斷總線是否在 SuperSpeed 或更新版本上運作。

此 GUID 適用於 KMDF 和 UMDF 驅動程式。

規格需求

需求
最低支援的用戶端 Windows Vista
目標平台 Universal
最小 KMDF 版本 1.11
最低UMDF版本 2.0
標頭 wdfusb.h (包含 Wdfusb.h)
程式庫 Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI 合規性規則 DriverCreate (kmdf)

另請參閱

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation