USB 機能クライアント ドライバーが使用する UFX オブジェクトとハンドル

USB ファンクション クラス拡張 (UFX) は、WDF オブジェクト機能を使用して、これらの USB 固有の UFX オブジェクトを定義します。

まとめ

  • UFX オブジェクトは、エンドポイントとの間の転送を処理するため、ファンクション コントローラー ドライバーによって使用されます。
  • これらのオブジェクトは WDF オブジェクトへのハンドルであり、クライアント ドライバーの要求に応じて UFX によって作成されます。 各オブジェクトの有効期間は、UFX によって管理されます。

重要な API

USB ファンクション クラス拡張 (UFX) は、WDF オブジェクト機能を使用して、これらの USB 固有の UFX オブジェクトを定義します。

これらのオブジェクトは WDF オブジェクトへのハンドルであり、ファンクション クライアント ドライバーの要求に応じて UFX によって作成されます。 必要に応じて、クライアント ドライバーは、作成時に渡すことができるこれらのオブジェクトにコンテキストを関連付けることができます。 UFX によって作成される各 WDF オブジェクトには、2 つのデバイス コンテキスト (オブジェクト作成時に UFX によって設定された 1 つのデバイス コンテキストと、クライアント ドライバーによって渡されるもう 1 つのデバイス コンテキスト) が含まれる可能性があり、WDF オブジェクトの作成後に WdfObjectAllocateContext を使用して UFX で設定されます。

UFXDEVICE: USB デバイス オブジェクト

コントローラーによって作成された USB デバイスを表します。 このオブジェクトは、USB プロトコル仕様に従って USB 状態を管理し、USB デバイスに関連付けられている 1 つ以上のエンドポイントを管理する役割を担います。 ファンクション コントローラー ドライバーは、UfxDeviceCreate メソッドを呼び出すことによって、EvtDriverDeviceAdd コールバック内にこのオブジェクトを作成します。

EVT_UFX_DEVICE_HOST_CONNECT
ホストとの接続を開始します。

EVT_UFX_DEVICE_HOST_DISCONNECT
ファンクション コントローラーとホストとの通信を無効にします。

EVT_UFX_DEVICE_ADDRESSED
ファンクション コントローラーのアドレスを割り当てます。

EVT_UFX_DEVICE_ENDPOINT_ADD
既定のエンドポイント オブジェクトを作成します。

EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD
既定のエンドポイント オブジェクトを作成します。

EVT_UFX_DEVICE_USB_STATE_CHANGE
USB デバイスの状態を更新します。

EVT_UFX_DEVICE_PORT_CHANGE
USB デバイスが接続されている新しいポートの種類を更新します。

EVT_UFX_DEVICE_PORT_DETECT
ポート検出を開始します。

EVT_UFX_DEVICE_REMOTE_WAKEUP_SIGNAL
ファンクション コントローラーでリモート ウェイクアップを開始します。

EVT_UFX_DEVICE_DETECT_PROPRIETARY_CHARGER
ベンダー独自の充電器検出を開始します。

EVT_UFX_DEVICE_PROPRIETARY_CHARGER_RESET
ベンダー独自の充電器をリセットします。

EVT_UFX_DEVICE_PROPRIETARY_CHARGER_SET_PROPERTY
USB 経由の充電を有効にするために使用される充電器情報を設定します。

UFXENDPOINT: USB エンドポイント オブジェクト

ホストとデバイスの間の論理接続を表します。 オブジェクトは、ホスト間でのデータの転送を担当します。 すべてのデバイス オブジェクトに対して、1 つ以上のエンドポイントを使用できます。 既定のエンドポイントは常にコントロール エンドポイントであり、残りはクラス ドライバー固有のオブジェクトになります。 ファンクション コントローラー ドライバーは、UfxEndpointCreate メソッドを呼び出して、EVT_UFX_DEVICE_ENDPOINT_ADD コールバックにオブジェクトを作成します。