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 |
---|---|
|
USB 裝置物件句柄無效。 |
|
記憶體不足。 |
|
呼叫端傳遞了無效的參數值。
|
|
基礎 USB 驅動程式堆疊不支援指定的功能。 |
|
主機控制器硬體不支援指定的功能。 |
這個方法也可能傳回其他 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) |