So, I found a little time to continue investigations after my debugging session, Investigating Widcomm when MSFT present   Of the possibilities I’ve emailed Broadcom for #1 and also tried #3.  (We’ll leave #2 for now).

So I downloaded version 5.1.0.3101 of the SDK — that’s the last version of the SDK before v6 added the Vista support (wrapping the MSFT stack).  And guess what, it works!  As simple as that…

Running the multi-stack tests in ConsoleMenuTesting is successful.  That’s running a listener on one stack and the client on the other stack, both on the same PC.  Both cases work, listener on Widcomm and listener on MSFT, see the logs below.  Also running two ObexWebrequests to the opposite stack is also successful.

All that’s needed is a new copy of our native DLL, 32feetWidcomm.dll.  I’ve posted a copy to http://32feet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=37167.  Please download this, replace your current copy and test test test.  Let me know if it’s all successful, or not…

option>12
 1 -- Quit
 2 -- <-Back
 3 -- ListenerOnStack1ClientOnStack2
 4 -- ListenerOnStack2ClientOnStack1
...
option>3
IBtIf using WidcommStBtIf.
BtIf_Create
Num factories: 2, Primary Factory: WidcommBluetoothFactory
BtIf_GetLocalDeviceVersionInfo
BtIf_GetLocalDeviceName
BtIf_IsDeviceConnectableDiscoverable
1)  Radio, address: 00:0A:3A:68:65:BB
Mode: Discoverable
Name: ALANPC1b, LmpSubversion: 777
ClassOfDevice: 0, device: Miscellaneous / service: None
Software: Broadcom,  Hardware: Broadcom, status: Running
Remote: ''2)  Radio, address: 00:80:98:24:4C:A4
Mode: Connectable
Name: ALANPC1, LmpSubversion: 524
ClassOfDevice: 20104, device: DesktopComputer / service: Network
Software: Microsoft,  Hardware: CambridgeSiliconRadio, status: Unknown
Remote: ''IRfCommIf using WidcommStRfCommIf.
RfCommIf_Create
RfCommIf_GetScn
Server GetScn returned port: 10
True; False,False-> NONE
Listening on 000000000000:10
WidcommRfcommPort.Create'd: 1212FC8
NativeMethods.RfcommPort_OpenServer ret: SUCCESS=0x00000000
OpenServer ret: SUCCESS=0x00000000
StartOneNewListenerPort 1212FC8.
Started 1 new port(s).
SdpService_Create
SdpService_AddServiceClassIdList, num: 1, p_service_guids: 0135CC90
SdpService_AddRFCommProtocolDescriptor
Listener active on SCN: 10
BeginAccept Enqueued
Gonna connect to: 000A3A6865BB:10
release to connect!>
HandleEvent: 512=0x200=CONNECTED
1212FC8: CONNECTED (New)CONNECTED 1212FC8; m_state: New; m_arConnect (set), IsCompleted: False.
NOT RfcommPort_IsConnected on our Widcomm SINGLE thread!
RfcommPort_IsConnected on Widcomm callback thread!
Client Connected to : 'ALANPC1b' 000A3A6865BB:10
waiting for Lsnr.Accept completion event.
PortAccepted Dequeued a caller
WidcommRfcommPort.Create'd: 1215EF8
NativeMethods.RfcommPort_OpenServer ret: SUCCESS=0x00000000
OpenServer ret: SUCCESS=0x00000000
StartOneNewListenerPort 1215EF8.
Started 1 new port(s).
HandleEvent: 7224=0x1C38=CTS, DSR, RLSD, CTSS, DSRS, RLSDS
1212FC8: CTS, DSR, RLSD, CTSS, DSRS, RLSDS (Connected)All success

….

1 -- Quit
2 -- <-Back
3 -- ListenerOnStack1ClientOnStack2
4 -- ListenerOnStack2ClientOnStack1
...
Invalid number>4
BtIf_GetLocalDeviceVersionInfo
BtIf_GetLocalDeviceName
BtIf_IsDeviceConnectableDiscoverable
1) Radio, address: 00:0A:3A:68:65:BB
Mode: Discoverable
Name: ALANPC1b, LmpSubversion: 777
ClassOfDevice: 0, device: Miscellaneous / service: None
Software: Broadcom, Hardware: Broadcom, status: Running
Remote: ''2) Radio, address: 00:80:98:24:4C:A4
Mode: Connectable
Name: ALANPC1, LmpSubversion: 524
ClassOfDevice: 20104, device: DesktopComputer / service: Network
Software: Microsoft, Hardware: CambridgeSiliconRadio, status: Unknown
Remote: ''Listener active on SCN: 1
IRfCommIf using WidcommStRfCommIf.
WidcommRfcommPort.Create'd: 1215A78
RfCommIf_Create
Gonna connect to: 008098244CA4:1
release to connect!>
BeginFillInPortState
BeginFillInPort, has port -> Completed Syncronously
NativeMethods.RfcommPort_OpenClient ret: SUCCESS=0x00000000
OpenClient ret: SUCCESS=0x00000000
HandleEvent: 512=0x200=CONNECTED
1215A78: CONNECTED (New)CONNECTED 1215A78; m_state: New; m_arConnect (set), IsCompleted: False.
NOT RfcommPort_IsConnected on our Widcomm SINGLE thread!
RfcommPort_IsConnected on Widcomm callback thread!
HandleEvent: 7736=0x1E38=CTS, DSR, RLSD, CONNECTED, CTSS, DSRS, RLSDS
Client Connected to : 'ALANPC1' 008098244CA4:00000000000000000000000000000000
waiting for Lsnr.Accept completion event.
All success1215A78: CTS, DSR, RLSD, CONNECTED, CTSS, DSRS, RLSDS (Connected)
CONNECTED 1215A78; m_state: Connected; m_arConnect (null), IsCompleted: n/a.
HandleEvent: 512=0x200=CONNECTED
1215A78: CONNECTED (Connected)
CONNECTED 1215A78; m_state: Connected; m_arConnect (null), IsCompleted: n/a.
Advertisements