共用方式為


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。 否則,這個方法可以傳回下列其中一個值:

傳回碼 描述
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 驅動程式堆棧註冊。

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

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

功能 GUID 描述
GUID_USB_CAPABILITY_CHAINED_MDLS Windows 8 中新的 USB 驅動程式堆疊能夠接受以 KMDF 為基礎的 USB 用戶端驅動程式的鏈結 MDL(請參閱 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
目標平臺 普遍
最低 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