次の方法で共有


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 ドライバー スタックに登録する必要があります。

ドライバー EvtDevicePrepareHardware コールバック関数が呼び出された後、WdfUsbTargetDeviceQueryUsbCapability を呼び出す必要があります。

次の表では、KMDF ベースの USB クライアント ドライバーが WdfUsbTargetDeviceQueryUsbCapability 呼び出しを介してクエリを実行できる USB 固有の機能について説明します。

機能 GUID 形容
GUID_USB_CAPABILITY_CHAINED_MDLS Windows 8 の新しい USB ドライバー スタックは、KMDF ベースの USB クライアント ドライバーからチェーンされた MDL (MDLを参照) を受け入れることが可能です。

USB ドライバー スタックのチェーンされた MDL 機能の詳細については、「チェーンされた 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 仕様では、関数中断と呼ばれる新機能が定義されています。 この機能により、複合デバイスの個々の機能が、他の機能とは無関係に低電力状態に入ります。

関数の中断の詳細については、「複合ドライバーで関数の中断を実装する方法」を参照してください。

この 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