Bluetooth 프로필 드라이버에서 SCO 연결 수락

SCO 프로필 드라이버는 원격 디바이스에서 들어오는 SCO(동기 Connection-Oriented) 연결 요청에 응답하기 위해 자신을 등록할 수 있습니다. 예를 들어 CTP(무선 전화 통신 프로필) 디바이스의 SCO 프로필 드라이버는 요청을 수락하거나 거부하는 CTP 디바이스에서 들어오는 SCO 연결 요청에 응답합니다. 서버 프로필 드라이버가 요청을 수락하면 서버 프로필 드라이버가 디바이스의 입력에 응답하고 해당 입력을 Bluetooth 드라이버 스택에 전달합니다.

서버 프로필 드라이버는 원격 Bluetooth 디바이스에서 들어오는 SCO 연결 요청을 수락하려면 다음 단계를 수행해야 합니다.

원격 디바이스에서 들어오는 SCO 연결 요청을 받으려면

  1. 프로필 드라이버는 스택이 들어오는 SCO 연결 요청을 프로필 드라이버에 알릴 수 있도록 SCO 콜백 함수를 Bluetooth 드라이버 스택에 등록하기 위해 BRB_SCO_REGISTER_SERVER 요청을 빌드하고 보내야 합니다.

  2. Bluetooth 드라이버 스택이 원격 디바이스에서 들어오는 SCO 연결 요청을 받으면 프로필 드라이버에서 이전에 등록된 SCO 콜백 함수 를 호출합니다. Bluetooth 드라이버 스택은 ScoIndicationRemoteConnect 값을 콜백 함수의 Indication 매개 변수에 전달합니다.

  3. 들어오는 연결 요청에 응답하려면 프로필 드라이버가 BRB_SCO_OPEN_CHANNEL_RESPONSE 요청을 빌드하고 보내야 합니다. 이 요청과 함께 전달된 _BRB_SCO_OPEN_CHANNEL 구조체의 Response 멤버 값에 따라 서버 프로필 드라이버는 연결 요청을 수락하거나 거부합니다.

  4. 서버 프로필 드라이버가 연결을 수락하는 경우 Bluetooth 드라이버 스택은 _BRB_SCO_OPEN_CHANNEL 구조의 콜백 멤버에 지정된 대로 SCO 콜백 함수를 호출하여 서버 프로필 드라이버에 SCO 연결에 대한 변경 내용을 알릴 수 있습니다.

프로필 드라이버가 연결 요청을 수락한 후 다른 BRB를 사용하여 새로 설정된 SCO 연결을 통해 데이터를 보내고 받을 수 있습니다.

원격 디바이스 SCO 연결 시도에 대한 알림 수신을 중지하려면 프로필 드라이버가 알림을 제거하기 플러그 앤 플레이 IRP_MN_REMOVE_DEVICE 처리할 때 프로필 드라이버가 서버를 등록 취소하는 BRB_SCO_UNREGISTER_SERVER 요청을 빌드하고 보내야 합니다.

알림 및 콜백 기능에 대한 자세한 내용은 Bluetooth 이벤트 알림 지원을 참조하세요.