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を返します。 それ以外の場合、このメソッドは次のいずれかの値を返すことができます。

リターン コード 説明
STATUS_INVALID_DEVICE_STATE
USB デバイス オブジェクト ハンドルが無効です。
STATUS_INSUFFICIENT_RESOURCES
メモリが不足していました。
STATUS_INVALID_PARAMETER
呼び出し元が無効なパラメーター値を渡しました。
  • UsbDevice または CapabilityType が NULL です。
  • CapabilityBuffer は NULL ですが、 CapabilityBufferLength には 0 以外の値が含まれています。 逆に、呼び出し元は CapabilityBuffer を 提供しましたが、 CapabilityBufferLength は 0 です。
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 ドライバー スタックのチェーンされた 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)

こちらもご覧ください

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation