BRB_SCO_OPEN_CHANNEL_RESPONSE [VGC-RM95S]
RBR の dispatch は以下の階層でおこなっているが、内部でスレッド化しているので完全な追跡は難しい。
bthport!BthHandleBrbDispatch
bthport!BthDispatchBrb
bthport!BthCompleteRequestEx
BRB_SCO_OPEN_CHANNEL_RESPONSE をマニュアルどおりに任意に設定すると c0000030 や c000000d のエラーとなる。以下の設定で音声データの受信まで確認できた。
brb->BtAddress = ConnectParams->BtAddress;
brb->TransmitBandwidth = 8000;
brb->ReceiveBandwidth = 8000;
brb->MaxLatency = 0xffff;
brb->PacketType = SCO_HV3;
brb->ContentFormat = SCO_VS_SETTING_DEFAULT;
brb->Reserved = 0;
brb->ChannelFlags = SCO_CF_LINK_SUPPRESS_PIN;
brb->CallbackFlags = SCO_CALLBACK_DISCONNECT;
brb->Callback = &BthEchoSrvConnectionIndicationCallback;
brb->CallbackContext = connectionObject;
brb->ReferenceObject = (PVOID) WdfDeviceWdmGetDeviceObject(DevCtx->Header.Device);
brb->ChannelHandle = ConnectParams->ConnectionHandle;
brb->Response = SCO_CONNECT_RSP_RESPONSE_SUCCESS;
MS Stack は 64bit での動作も可能で、複数のスマホからの受信もさばけるので、やはり捨てがたい。
コメント 0