From: ryan01701 on 11 Jun 2010 09:55 I have a device that presents the standard Bluetooth HCI controller interface on USB. I can successfully open a handle to it via the standard methods (CreateFile, WinUsb_Initialize) and communicate via control transfers with interface 0. However, I want to send a request to interface 2. I initialize my WINUSB_SETUP_PACKET as desired, with the Index field set to 2. But on my USB analyzer, when I see the packet go out, the Index field is 0. Am I missing a call in to the driver to allow or otherwise enable interface #2? What would cause the Index field to change value inside the driver call? Thanks, -- Ryan
From: Tim Roberts on 12 Jun 2010 01:54 ryan01701 <ryan01701(a)discussions.microsoft.com> wrote: > >I have a device that presents the standard Bluetooth HCI controller interface >on USB. I can successfully open a handle to it via the standard methods >(CreateFile, WinUsb_Initialize) and communicate via control transfers with >interface 0. > >However, I want to send a request to interface 2. Is your driver's INF matching the entire composite device (VID_xxxx&PID_xxxx), or are you only matching interface 0 (VID_xxxx&PID_xxxx&MI_00)? >I initialize my >WINUSB_SETUP_PACKET as desired, with the Index field set to 2. But on my USB >analyzer, when I see the packet go out, the Index field is 0. If you're only matching interface 0, it's possible that the default composite driver is overriding the index number, since interface 2 belongs to someone else. I'd be surprised at that but it's not impossible. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc.
From: Maxim S. Shatskih on 12 Jun 2010 04:12 >I have a device that presents the standard Bluetooth HCI controller interface > on USB. How can you use WinUSB for it? Am I wrong that the controller must be plugged to MS's kernel-mode Bluetooth stack? -- Maxim S. Shatskih Windows DDK MVP maxim(a)storagecraft.com http://www.storagecraft.com
From: ryan01701 on 14 Jun 2010 09:39 "Maxim S. Shatskih" wrote: > >I have a device that presents the standard Bluetooth HCI controller interface > > on USB. > > How can you use WinUSB for it? Am I wrong that the controller must be plugged to MS's kernel-mode Bluetooth stack? I'm interested in interfacing with it as a "raw" device, so WinUSB is suitable for my needs. I don't want or need to use any higher level Bluetooth functionality from the operating system. -- Ryan
From: Philip Ries [MSFT] on 15 Jun 2010 16:33
Just taking a glance at the docs, you could look into calling WinUsb_GetAssociatedInterface to get an interface handle, with which you would then call WinUsb_ControlTransfer. http://msdn.microsoft.com/en-us/library/ff540245(VS.85).aspx ryan01701 wrote: > I have a device that presents the standard Bluetooth HCI controller interface > on USB. I can successfully open a handle to it via the standard methods > (CreateFile, WinUsb_Initialize) and communicate via control transfers with > interface 0. > > However, I want to send a request to interface 2. I initialize my > WINUSB_SETUP_PACKET as desired, with the Index field set to 2. But on my USB > analyzer, when I see the packet go out, the Index field is 0. > > Am I missing a call in to the driver to allow or otherwise enable interface > #2? What would cause the Index field to change value inside the driver call? > > Thanks, > |