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 が 0 の場合、このパラメーターは NULL である必要があります。 同様に、 CapabilityBufferLength が 0 以外の場合は、このパラメーターを指定する必要があります。 このパラメーターは、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 ドライバー スタックのチェーンされた MDLs 機能の詳細については、「 How to Send Chained MDLs」を参照してください。 この GUID は KMDF ドライバーにのみ適用されます。 |
GUID_USB_CAPABILITY_STATIC_STREAMS |
USB 2.0 以前では、一括エンドポイントを介した 1 つのデータ ストリームの送信のみがサポートされているのに対し、USB 3.0 では、一括エンドポイントを介した複数のデータ ストリームの送受信が許可されます。
ストリームを開く方法の詳細については、「 USB 一括エンドポイントで静的ストリームを開いたり閉じる方法」を参照してください。 この GUID は KMDF ドライバーにのみ適用されます。 |
GUID_USB_CAPABILITY_FUNCTION_SUSPEND |
ユニバーサル シリアル バス (USB) 3.0 仕様では、function suspend という新しい機能が定義されています。 この機能により、複合デバイスの個々の機能は、他の機能とは無関係に低電力状態になります。
関数の中断の詳細については、「 複合ドライバーで関数の中断を実装する方法」を参照してください。 この 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 |
Header | wdfusb.h (Wdfusb.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf) |