SSブログ

BRB_SCO_OPEN_CHANNEL_RESPONSE [VGC-RM95S]

RBR の dispatch は以下の階層でおこなっているが、内部でスレッド化しているので完全な追跡は難しい。

  bthport!BthHandleBrbDispatch
    bthport!BthDispatchBrb
    bthport!BthCompleteRequestEx


BRB_SCO_OPEN_CHANNEL_RESPONSE をマニュアルどおりに任意に設定すると c0000030 や c000000d のエラーとなる。以下の設定で音声データの受信まで確認できた。

    brb->Hdr.ClientContext[0] = connectionObject;
    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->RetransmissionEffort = SCO_RETRANSMISSION_NONE;
    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 での動作も可能で、複数のスマホからの受信もさばけるので、やはり捨てがたい。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

トラックバック 0

MS Stack SCO connect..SCO HV3 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。