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