Bluetoothドライバースタック

Bluetooth ドライバー スタックは、Microsoft が Bluetooth プロトコル用に提供するサポートのコア部分で構成されます。 このスタックにより、Bluetooth 対応デバイスは互いを見つけて接続を確立できます。 このような接続の間で、デバイスはさまざまなアプリケーションを介してデータを交換し、相互に対話できます。

次の図は、Bluetooth ドライバー スタック内のモジュールと、Windows Vista 以降に含まれていないカスタム ユーザー モードドライバーとカーネル モード ドライバーを示しています。 これらのカスタム ドライバーは、プロファイル ドライバーと呼ばれます。

Diagram showing the Bluetooth driver stack architecture.

  • ユーザーモード

    • ユーザーモードアプリケーション- 公開された API を介して Bluetooth ドライバー スタックにアクセスするユーザーモード アプリケーション。 詳細については、を参照してください Bluetoothについて Windows SDK ドキュメントの中で。

      ユーザーモードアプリケーションはリンクする必要があります BthProps.lib, の代わりに IrProps.lib, などの API を使用するには BluetoothSetLocalServiceInfo.

  • プロファイル ドライバの例

    • WAP カーネルモードドライバ- ワイヤレス アプリケーション プロトコル (WAP) コンポーネントは、Windows ネットワーク スタックと BthPort の間で通信し、L2CAP インターフェイスと、必要に応じて L2CAP に含まれる SDP インターフェイスにアクセスするプロファイル ドライバーの一例です。 その他の可能なプロファイルとしては、詳細オーディオの配信 プロファイル (A2DP)、A/V リモートコントロール プロファイル (AVRCP)、Generic A/V Distribution プロファイル (GAVDP)、Common ISDN Access (CIP) プロファイルなどがあります。

    • オーディオ カーネル モード ドライバー- Windows オーディオ スタックと BthPort の間で通信し、BthPort に含まれる SCO インターフェイスにアクセスするプロファイル ドライバーの例。 可能なプロファイルには、ハンズフリー プロファイル (HFP)、ヘッドセット プロファイル (HSP)、コードレス テレフォニー プロファイル (CTP)、インターホン プロファイル (ICP) などがあります。 このプロファイル ドライバーは、Windows 8 以降の Windows に含まれています。

    • Bluetooth LE心拍数モニタープロファイル- Bluetooth Low Energy (LE) API と通信する Bluetooth LE プロファイルドライバーの例。

  • Bluetoothドライバースタックのコンポーネント

    • IrProps- Bluetooth ドライバー スタックの最初のバージョン用に作成されたプロファイル ドライバーの下位互換性のために使用されるコンポーネント。 IrProps は下位互換性を目的としてのみ提供されています。 を使用します BthProps 新規開発用コンポーネント。

    • BthProps-ユーザー モード アプリケーションがアクセスする Bluetooth API の実装と共に Bluetooth ユーザー インターフェイスの実装を含むコンポーネント。 このコンポーネントは、リモート プロシージャ コール (RPC) を介して BthServ に問い合わせを送信します。 さらに、BthProps はプライベート IOCTL を介して BthPort とのピン交換を実行します。 BthProps は、Bluetooth 対応無線を使用する任意のシステムで実行されることに注意してください。

    • BthServ- 問い合わせデータのキャッシュと Bthport への転送を担当するサービス。

    • BthCi- Bluetooth クラス インストーラー。

    • WshBth- Bluetooth Windows ソケット ヘルパー コンポーネント。 WshBth は、ソケット操作を実行するために Windows ソケット レイヤーによって呼び出されます。 WshBth は主に TDI インターフェイスを介して RfComm を呼び出します。 また、WshBth は BthServ を呼び出してリモート デバイスの問い合わせを実行し、BthPort に呼び出してローカル 無線の問い合わせを実行します。

    • FSquirt- ユーザーが開いている Bluetooth 接続を介してファイルを送受信できるようにする、非拡張オブジェクト交換 (OBEX) コンポーネント。 OBEX は、WshBth コンポーネントを使用する RFCOMM を介してリモート デバイスと通信します。

    • BthPrint- ハードコピー ケーブル交換プロファイル (HCRP) を実装するコンポーネント。 このコンポーネントにより、印刷システムは Bluetooth 対応プリンターとの間でデータを送受信できます。 BthPrint は BthPort の SDP インターフェイスと通信して、リモート プリンターと BthPort の L2CAP インターフェイスにクエリを実行してデータを送受信します。

    • HidBth- ヒューマン インターフェイス デバイス (HID) プロファイルを実装するコンポーネント。 HidBth は、BthPort の L2CAP および SDP インターフェイスとも通信します。 HidBth は、USB HID モジュールと同様に HID スタックに接続します。

    • BthPan- パーソナル エリア ネットワーク (PAN) プロファイルを実装し、開いている Bluetooth 接続を介して TCP 接続を提供するコンポーネント。 Windows Vista および Windows XP では、BthPan は送信接続のみをサポートします。 BthPan は BthPort コンポーネントのクライアントでもあり、L2CAP インターフェイスと SDP インターフェイスの両方を使用します。

    • RfComm- Bluetooth シリアル ケーブル エミュレーション プロトコルを実装するコンポーネント。 RfComm では、BthPort で見つかった L2CAP および SDP インターフェイスも使用されます。 RfComm の上端は TDI インターフェイスを公開するため、このコンポーネントはネットワーク トランスポートのように見えます。 これは、WshBth が Bluetooth に接続して、ユーザー モード API からデータを送受信する方法です。

      ユーザー モード アプリケーションは、Windows SDK で説明されている Winsock インターフェイスを使用して RfComm にアクセスできます。

    • BthModem- 仮想 COM ポートとダイヤルアップ ネットワーク (DUN) を実装するコンポーネント。 BthModem は、すべての I/O および制御操作を TDI インターフェイスを介して RfComm に転送します。 BthModem の上端は次と通信します Serial.sys 通信して、ワイヤレス COM ポートの外観を提供します。

    • BthEnum- Bluetooth バス ドライバー。 BthEnum は、プラグ アンド プレイ (PnP) マネージャーと通信して、Bluetooth サービスを有効にするために使用されるデバイス オブジェクトを作成および破棄します。 BthEnum は、接続されたリモート デバイスがサポートするすべてのサービスに対して PDO を作成します。 たとえば、ユーザーが Bluetooth 対応のマウスを接続すると、Windows はマウスが Bluetooth HID サービスをサポートしていることを検出し、HidBth を読み込む PnP マネージャーを引き起こす HID サービスの PDO を作成します。

      Note

      BthEnumに出現するサービスの PDO は作成されません UnsupportedServices に指定されたレジストリ キー Bth.inf.

    • BthLEEnum- Bluetooth Low Energy (LE) バス ドライバー。 BthL Enterprise Edition num は、ATT プロトコルと GATT プロファイルを実装します。 また、リモート デバイスとそのプライマリ サービスを表す PDO の作成も担当します。

    • BthPort- BthUsb ミニポートによって読み込まれたミニドライバー。 BthPort には、次の 4 つのコンポーネントが用意されています。

      1. HCI コンポーネントは、Bluetooth 仕様で定義されているホスト コントローラー インターフェイス (HCI) を介して、ローカルの Bluetooth 対応無線と通信します。 すべての Bluetooth 対応無線は HCI 仕様を実装しているため、BthPort は製造元やモデルに関係なく、Bluetooth 対応の無線と通信できます。
      2. SCO コンポーネントは、同期接続指向 (SCO) プロトコルを実装します。 このプロトコルでは、リモート デバイスへのポイントツーポイント接続の作成がサポートされています。 SCO クライアントは SCO インターフェイスと通信します による 建物そして送信 Bluetooth 要求ブロック (BRB)。
      3. L2CAP は、Bluetooth 論理リンク制御と適応プロトコルを実装します。 このプロトコルは、リモート デバイスへの無損失チャネルの作成をサポートします。 L2CAP クライアントは、Bluetooth 要求ブロック (BRB) を構築および送信することにより、L2CAP インターフェイスと通信します。
      4. SDP は、Bluetooth サービス探索プロトコルを実装します。
    • BthUsb.sys- バスインターフェースを抽象化するミニポート BthPort.