Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

その他のユーティリティー関数

このセクションでは、USB デバイスドライバで役立つその他の関数について説明します。

文字列記述子の取得

インデックスを指定して文字列記述子を取得するには、usb_get_string_descr(9F) 関数を呼び出します。一部の構成、インタフェース、またはデバイス記述子には、文字列の ID が関連付けられています。そのような記述子には、ゼロ以外の値を含む文字列インデックスフィールドが含まれています。文字列インデックスフィールドの値を usb_get_string_descr(9F) に渡すと、対応する文字列を取得できます。

パイプの非公開データ機能

各パイプは、クライアントドライバ専用に確保された領域のポインタを 1 つずつ備えています。値をインストールするには、usb_pipe_set_private(9F) 関数を使用します。値を取得するには、usb_pipe_get_private(9F) 関数を使用します。この機能がコールバックで役に立つのは、パイプが独自のクライアント定義状態を特定処理の対象としてコールバックに渡す必要がある場合です。

USB 状態のクリア

usb_clr_feature(9F) 関数を使用すると、次のタスクを実行できます。

  • あるエンドポイントの停止状態をクリアするために、USB CLEAR_FEATURE 要求を発行します。

  • デバイス上のリモートウェイクアップ状態をクリアします。

  • デバイスレベル、インタフェースレベル、またはエンドポイントレベルのデバイス固有状態をクリアします。

デバイス、インタフェース、エンドポイントの各ステータスの取得

USB GET_STATUS 要求を発行してデバイス、インタフェース、またはエンドポイントのステータスを取得するには、usb_get_status(9F) 関数を使用します。

  • デバイスのステータス。自己電源とリモートウェイクアップが有効。

  • インタフェースのステータス。USB 2.0 仕様に従ってゼロを返す。

  • エンドポイントのステータス。エンドポイントが停止。このステータスは機能ストールを示します。停止をクリアしないと、デバイスをふたたび動作させることができません。

    プロトコルストールは、サポートされない制御パイプ要求が行われたことを示します。プロトコルストールは、次回の制御転送の開始時に自動的にクリアされます。

デバイスのバスアドレスの取得

デバイスの USB バスアドレスをデバッグ目的で取得するには、usb_get_addr(9F) 関数を使用します。このアドレスは特定の USB ポートに対応します。