Bluetooth 디바이스 설치
Important
이 항목은 프로그래머를 위한 것입니다. Bluetooth 디바이스 설치 문제가 발생한 고객은 Windows에서 Bluetooth 디바이스 페어링을 참조 하세요.
Bluetooth 프로필 드라이버에는 두 가지 설치 유형이 있습니다.
- 원격 디바이스가 서비스를 보급하고 컴퓨터가 연결하는 원격 디바이스에 대한 클라이언트 쪽 설치 예를 들어 마우스, 키보드 및 프린터가 있습니다.
- 컴퓨터가 서비스를 보급하는 서버 쪽 설치 및 원격 디바이스는 해당 서비스를 사용하기 위해 컴퓨터에 연결할 수 있습니다. 예를 들어 공급업체는 모바일 디바이스가 컴퓨터에 연결된 프린터에 인쇄할 수 있도록 서버 쪽 설치를 작성할 수 있습니다.
이러한 두 설치 유형에는 서로 다른 설치 절차가 필요합니다.
클라이언트 쪽 프로필 드라이버 설치
Bluetooth 사용 디바이스를 사용하려는 사용자는 컴퓨터 범위 내에서 디바이스를 가져오고 클라이언트 쪽 프로필 드라이버에 대해 다음 설치 순서를 사용하여 컴퓨터에서 원격 디바이스로의 연결을 시작합니다.
- 제어판 Bluetooth 디바이스 추가를 선택하여 컴퓨터 범위 내의 모든 디바이스를 찾습니다.
- 페어링할 디바이스를 선택합니다.
- PIN 교환을 포함하거나 포함하지 않을 수 있는 로컬 라디오와 디바이스를 페어링합니다.
- 로컬 라디오는 원격 디바이스에서 지원되는 서비스를 식별하기 위해 SDP 문의를 실행합니다.
- 새 하드웨어 검색 마법사는 로컬 하드 디스크 드라이브 및 Windows 업데이트 적절한 드라이버를 검색합니다.
- 새 하드웨어 찾기 마법사에서 디바이스에 적합한 드라이버를 찾지 못하면 프로필 드라이버의 INF 파일(디바이스 설정 정보 파일)이 포함된 프로필 드라이버 설치 미디어를 삽입하라는 메시지가 표시됩니다.
서버 쪽 프로필 드라이버 설치
Bluetooth 드라이버 스택은 Bluetooth SIG에 정의된 서비스 GUID와 Bluetooth SIG에서 정의하지 않은 사용자 지정 GUID를 지원합니다.
참고 항목
Microsoft Windows SDK와 함께 제공되는 guidgen.exe 도구를 사용하여 사용자 지정 GUID를 만들 수 있습니다.
원격 Bluetooth 디바이스에서 사용할 수 있는 컴퓨터 기능을 노출하려면 사용자 모드 설치 애플리케이션을 작성해야 합니다.
설치 애플리케이션은 Bluetooth 드라이버 스택과 통신하여 노출할 기능에 대한 서비스 GUID를 만들어야 합니다. 공급업체는 애플리케이션 및 디바이스 설치 INF 파일에서 서비스 GUID를 지정합니다.
설치 애플리케이션은 사용자 모드 API BluetoothSetLocalServiceInfo를 호출해야 합니다. 애플리케이션이 이 API를 호출하려면 먼저 애플리케이션에 SE_LOAD_DRIVER_NAME 보안 권한이 있어야 합니다. 다음 코드 예제에서는 이 권한을 얻는 방법을 보여 줍니다. 이 예제에서는 오류 처리를 보여 주지 않습니다.
HANDLE procToken;
LUID luid;
TOKEN_PRIVILEGES tp;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &procToken);
LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, &luid);
Tp.PrivilegeCount = 1;
Tp.privileges[0].Luid = luid;
Tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(procToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, (PDWORD)NULL)
프로필 드라이버 INF 파일
프로필 드라이버의 INF 파일에는 클라이언트 쪽 설치를 위한 Bluetooth 디바이스에 대한 정보가 포함되어 있습니다. 서버 쪽 설치의 경우 INF 파일은 설치 애플리케이션에서 만든 서비스 GUID에 해당하는 디바이스 ID를 지정합니다. 모든 Bluetooth 장치는 Bluetooth 클래스의 구성원입니다. Bluetooth 클래스 설치 관리자(Bthci.dll)는 프로필 드라이버를 설치하는 데 도움이 됩니다.
INF 파일을 만들고 배포하고 드라이버를 설치하는 방법에 대한 자세한 내용은 INF 파일 및 INF 파일 섹션 및 지시문 만들기를 참조하세요.
플러그 앤 플레이 ID
Bluetooth 드라이버 스택은 다음 템플릿에 따라 하드웨어 ID를 생성합니다.
- BTHENUM\{ ServiceGUID}_VID& nnnnnnnnnn
- BTHENUM\{ ServiceGUID}_VID& nnnnnnnn_PID& nnnn
- BTHENUM\{ ServiceGUID}_LOCALMFG& nnnn
Bluetooth 드라이버 스택은 다음 템플릿에 따라 호환 ID를 생성합니다.
- BTHENUM\{ ServiceGUID}
ServiceGUID 는 Bluetooth 사양에 정의된 대로 128비트 GUID로 확장된 16비트 GUID입니다. 예를 들어 {00001124-0000-1000-8000-00805F9B34FB}은 HID 디바이스에 해당합니다.
- VID> 다음의 8자리 숫자는 공급업체 ID 코드에 해당합니다.
- PID> 다음의 4자리 숫자는 제품 ID 코드에 해당합니다.
- LOCALMFG& 다음의 네 자리는 로컬 Bluetooth 라디오 제조업체에 해당합니다.
- VID/PID 및 LOCALMFG 태그는 서로 독립적입니다.
가장 일반적인 디바이스 ID는 ServiceGUID 자체입니다. 예시:
BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}
Bluetooth 드라이버 스택은 원격 디바이스와 INF 파일 모두에서 플러그 앤 플레이 ID를 사용하여 원격 디바이스의 특정 릴리스에서만 실행되도록 프로필 드라이버 및 소프트웨어를 로드하도록 제한할 수 있습니다. Bluetooth 드라이버 스택은 디바이스가 SDP를 사용하여 검색할 수 있는 플러그 앤 플레이 ID를 게시하는 경우에만 VID/PID 쌍을 생성합니다. 예시:
BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_VID& nnnnnnn_PID& nnnnn
Bluetooth 드라이버 스택은 INF 파일의 디바이스 ID에 LOCALMFG 태그를 지정하여 특정 로컬 Bluetooth 라디오에서만 실행되도록 프로필 드라이버 및 소프트웨어를 로드하도록 제한할 수 있습니다. 예시:
BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_LOCALMFG& nnnn