title: Stack independent c/c++ bluetooth api?
body: <p><br>
  I wanted to know if there is any stack independent C/C++ bluetooth api for windows (XP, Vista, 7, x86 and x64).</p>
  
  <p>My target is to create a connection and send/receive some time critical data over bluetooth.</p>
  
  <p>My researches gave me the following options and there disadvantage for this task:</p>
  
  <ul>
  <li>Windows Sockets for Bluetooth<br />Only works with microsoft bluetooth stack  </li>
  <li>Using the COM port (CreateFile/ReadFile/...)<br />Slower than the socket option and the user has to connect to the device first.  </li>
  <li>Use stack dependent API<br />This would require to detect the used stack and create read/write functions for every stack. Very time consuming and I don't know if it is even possible to support all stacks</li>
  <li>Writing a KMDF driver<br />I thought about writing a function driver to talk directly with the bluetooth HCI driver which should be stack independent. This would be very time consuming because I would have to read the whole bluetooth spec, or is there an API for the HCI commands?</li>
  </ul>
  
  <p>I know that there is also a commercial sdk from btframework.com which supports most (or all) bluetooth stacks, but I need a freeware option.</p>
  
  <p>Please tell me if there are any other options for this task.<br>
  If there aren't any, could you tell me which options you would prefer and why?<br>
  Is it okay to use Windows Sockets and ignore the other bluetooth stacks?</p>
  
  <p>Thanks for your help :)</p>