Bluetooth 드라이버 스택

Bluetooth 드라이버 스택은 Bluetooth 프로토콜에 대해 Microsoft에서 제공하는 지원의 핵심 부분으로 구성됩니다. 이 스택을 사용하면 Bluetooth 지원 디바이스가 서로를 찾고 연결을 설정할 수 있습니다. 이러한 연결에서 디바이스는 다양한 애플리케이션을 통해 데이터를 교환하고 상호 작용할 수 있습니다.

다음 이미지는 Windows Vista 이상에 포함되지 않은 가능한 사용자 지정 사용자 모드 및 커널 모드 드라이버와 함께 Bluetooth 드라이버 스택 내의 모듈을 보여 줍니다. 이러한 사용자 지정 드라이버를 프로필 드라이버라고 합니다.

Bluetooth 드라이버 스택 아키텍처를 보여 주는 다이어그램

  • 사용자 모드

    • 사용자 모드 애플리케이션 - 게시된 API를 통해 Bluetooth 드라이버 스택에 액세스하는 사용자 모드 애플리케이션입니다. 자세한 내용은 Windows SDK 설명서의 Bluetooth 정보를 참조하세요.

      사용자 모드 애플리케이션은 BluetoothSetLocalServiceInfo와 같은 API를 사용하려면 IrProps.lib 대신 BthProps.lib에 연결해야 합니다.

  • 프로필 드라이버의 예

    • WAP 커널 모드 드라이버 - WAP(무선 애플리케이션 프로토콜) 구성 요소는 Windows 네트워킹 스택과 BthPort 간에 통신하고 L2CAP 인터페이스에 액세스하고 필요에 따라 L2CAP에 포함된 SDP 인터페이스에 액세스하는 프로필 드라이버의 예입니다. 다른 가능한 프로필로는 A2DP(고급 오디오 배포 프로필), AVRCP(A/V 원격 제어 프로필), GAVDP(일반 A/V 배포 프로필) 및 CIP(Common ISDN Access) 프로필이 있습니다.

    • 오디오 커널 모드 드라이버 - Windows 오디오 스택과 BthPort 간에 통신하여 후자에 포함된 SCO 인터페이스에 액세스하는 프로필 드라이버의 예입니다. 가능한 프로필에는 HFP(핸즈프리 프로필), 헤드셋 프로필(HSP), CTP(무선 전화 통신 프로필) 및 ICP(Intercom 프로필)가 포함됩니다. 이 프로필 드라이버는 Windows 8 시작하는 Windows에 포함되어 있습니다.

    • Bluetooth LE 심박수 모니터 프로필 - Bluetooth 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(Hardcopy Cable Replacement Profile)를 구현하는 구성 요소입니다. 이 구성 요소를 사용하면 인쇄 시스템에서 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은 TDI 인터페이스를 통해 모든 I/O 및 제어 작업을 RfComm으로 전달합니다. BthModem의 위쪽 가장자리는 무선 COM 포트가 되는 모양을 제공하기 위해 Serial.sys 통신합니다.

    • BthEnum - Bluetooth 버스 드라이버입니다. BthEnum은 플러그 앤 플레이(PnP) 관리자와 통신하여 Bluetooth 서비스를 사용하도록 설정하는 데 사용되는 디바이스 개체를 만들고 삭제합니다. BthEnum은 연결된 원격 디바이스가 지원하는 모든 서비스에 대해 PDO를 만듭니다. 예를 들어 사용자가 Bluetooth 지원 마우스를 연결할 때 Windows는 마우스가 Bluetooth HID 서비스를 지원하고 PnP 관리자가 HidBth를 로드하도록 하는 HID 서비스에 대한 PDO를 만드는 것을 발견합니다.

      참고

      BthEnum은 Bth.inf에 지정된 대로 UnsupportedServices 레지스트리 키에 표시되는 서비스에 대한 PDO를 만들지 않습니다.

    • BthLEEnum - Bluetooth LE(저에너지) 버스 드라이버입니다. BthLEEnum은 ATT 프로토콜 및 GATT 프로필을 구현합니다. 또한 원격 디바이스 및 기본 서비스를 나타내는 PDO를 만듭니다.

    • BthPort - BthUsb 미니포트에 의해 로드된 미니 드라이버입니다. BthPort는 다음 네 가지 구성 요소를 제공합니다.

      1. HCI 구성 요소는 Bluetooth 사양에 정의된 HCI(호스트 컨트롤러 인터페이스)를 통해 로컬 Bluetooth 지원 라디오와 통신합니다. 모든 Bluetooth 지원 라디오는 HCI 사양을 구현하므로 BthPort는 제조업체 또는 모델에 관계없이 모든 Bluetooth 지원 라디오와 통신할 수 있습니다.
      2. SCO 구성 요소는 SCO(동기 Connection-Oriented) 프로토콜을 구현합니다. 이 프로토콜은 원격 디바이스에 대한 지점 간 연결 만들기를 지원합니다. SCO 클라이언트는 BRB(Bluetooth 요청 블록)를 빌드하고 전송 하여 SCO 인터페이스와 통신합니다.
      3. L2CAP는 Bluetooth 논리 링크 제어 및 적응 프로토콜을 구현합니다. 이 프로토콜은 원격 디바이스에 대한 무손실 채널 만들기를 지원합니다. L2CAP 클라이언트는 BRB(Bluetooth 요청 블록)를 빌드하고 전송하여 L2CAP 인터페이스와 통신합니다.
      4. SDP는 Bluetooth 서비스 검색 프로토콜을 구현합니다.
    • BthUsb.sys- BthPort에서 버스 인터페이스를 추상화하는 미니포트입니다.