usbser device interface

Does usbser register a GUID_DEVINTERFACE_COMPORT device interface?

I am using RegisterDeviceNotification & SetupDiEnumDeviceInterfaces and I
seem to be able to pick up all comports except an Arduino UNO device (which
uses usbser and happens to be the one I am interested in).

Cheers,
Dan

“Daniel Newton” wrote in message news:xxxxx@ntdev…
> Does usbser register a GUID_DEVINTERFACE_COMPORT device interface?
>
> I am using RegisterDeviceNotification & SetupDiEnumDeviceInterfaces and I
> seem to be able to pick up all comports except an Arduino UNO device
> (which
> uses usbser and happens to be the one I am interested in).
>
> Cheers,
> Dan

Usbser.sys from WinXP SP3 does not call IoRegisterDeviceInterface or
IoSetDeviceInterfaceState
(from what depends.exe shows). So its devinterface should be registered thru
the INF file.

Regards,
–pa

On Thu, Feb 3, 2011 at 2:41 AM, Pavel A. wrote:

> “Daniel Newton” wrote in message news:xxxxx@ntdev.
> …
>
> Does usbser register a GUID_DEVINTERFACE_COMPORT device interface?
>>
>> I am using RegisterDeviceNotification & SetupDiEnumDeviceInterfaces and I
>> seem to be able to pick up all comports except an Arduino UNO device
>> (which
>> uses usbser and happens to be the one I am interested in).
>>
>> Cheers,
>> Dan
>>
>
> Usbser.sys from WinXP SP3 does not call IoRegisterDeviceInterface or
> IoSetDeviceInterfaceState
> (from what depends.exe shows). So its devinterface should be registered
> thru the INF file.
>
> Regards,
> --pa
>
>
Ah, good find.

According to the docs the AddInterface inf directive wont work if the driver
does not call IoSetDeviceInterfaceState however.

I guess this means I have to enumerate and detect usbser.sys device arrival
a different way.

usbser doesn’t expose a full implemenation of a COM port device interface, it only supports enough to make a modem work.

d

Doron Holan wrote:

usbser doesn’t expose a full implemenation of a COM port
device interface, it only supports enough to make a modem
work.

My recollection was that it was based on your device’s setup class: if the device node was a modem, you got GUID_DEVINTERFACE_MODEM; if it were a COM port, you got GUID_DEVINTERFACE_COMPORT.

(In my driver I emulated this by calling WdfDeviceAllocAndQueryProperty with DevicePropertyClassGuid.)

The solution I went with is provide an alternate INF file which sets
up serenum.sys
as an upper filter to usbser.sys. Then I was able to use
GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR
for both RegisterDeviceNotification and SetupDiXXX functions.

On Thu, Feb 3, 2011 at 9:26 AM, wrote:

> usbser doesn’t expose a full implemenation of a COM port device interface,
> it only supports enough to make a modem work.
>
> d
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>