Driver won't work in USB3 world

I hope you guys don’t mind too much that this question is about somebody else’s driver, not one I have written or am trying to write…

I have a customer that uses a USB->Relay output board from a large supplier in that space. The board refused to work on a new machine which only has USB3 controllers on it (even though some of the ports are only USB2). The vendor says their driver, which has been running fine in USB2 for a decade or so, is incompatible with the USB3 world and “can’t be fixed”. I take the last to mean “they don’t want to fix it”.

I was under the impression that a USB2 driver would work fine with a USB3 controller. Am I wrong? If so, I have serious concerns about the future of a driver I did write.

* Bob

? Bob Ammerman
? xxxxx@ramsystems.biz
716.864.8337

138 Liston St
Buffalo, NY 14223
www.ramsystems.biz

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-633953-
xxxxx@lists.osr.com] On Behalf Of xxxxx@osr.com
Sent: Friday, June 30, 2017 1:03 PM
To: Windows System Software Devs Interest List
> Subject: RE:[ntdev] Root enumerated EV-cert signed driver not loading
> Win10 1607
>
> OK, let’s step back a moment.
>
> In your initial post, you wrote:
>
>


>
> Those two things you wrote “root-enumerated” and “non-PnP” are at odds
> with each other.
>
> A software-only driver that is “root-enumerated” is by definition a PnP
> driver. The PDO is created by the Root Enumerator (the PnP Manager) and
> your driver is called at EvtDriverDeviceAdd.
>
> A Non-PnP Driver would be a kernel service. It would not be root
> enumerated, but would rather be started by the Service Control Manager.
> You do not HAVE an EvtDriverDeviceAdd in this case… you create your Device
> Object in DriverEntry. These drivers are almost always written in WDM,
> not KMDF.
>
> So… my question to you is: Which are you?
>
> To your follow-on question:
>
>


>
> Not true!
>
> First, WinDbg is supposed to be able to allow you to speculatively add
> breakpoints. So, if you’re driver is named Fred.sys, and you want to put a
> breakpoint in DriverEntry, you can just do:
>
> bp Fred!DriverEntry
>
> … even if your driver is not yet loaded.
>
> Of course, you could also hard-code a breakpoint within your DriverEntry
> entry point, and step-through the code that way.
>
> Not to mention, you probably want to start and end your DriverEntry entry
> point with DbgPrint statements that indicate what’s going on.
>
> Does that help any?
>
> Peter
> OSR
> @OSRSDrivers
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at:
> http:
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at http:
>
> To unsubscribe, visit the List Server section of OSR Online at
> http:</http:></http:></http:>

Capture a usb etw log and see where the failure is. If it is failing at the physical protocol layer, there is nothing that can be done. If it is failing at the software layer, you have your smoking gun.

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Robert Ammerman
Sent: Friday, June 30, 2017 10:59 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Driver won’t work in USB3 world

I hope you guys don’t mind too much that this question is about somebody else’s driver, not one I have written or am trying to write…

I have a customer that uses a USB->Relay output board from a large supplier in that space. The board refused to work on a new machine which only has USB3 controllers on it (even though some of the ports are only USB2). The vendor says their driver, which has been running fine in USB2 for a decade or so, is incompatible with the USB3 world and “can’t be fixed”. I take the last to mean “they don’t want to fix it”.

I was under the impression that a USB2 driver would work fine with a USB3 controller. Am I wrong? If so, I have serious concerns about the future of a driver I did write.

* Bob

? Bob Ammerman
? xxxxx@ramsystems.biz
716.864.8337

138 Liston St
Buffalo, NY 14223
https://na01.safelinks.protection.outlook.com/?url=www.ramsystems.biz&amp;data=02|01|Doron.Holan%40microsoft.com|4e1660983b9e4b5d69ad08d4bfe1ad3b|72f988bf86f141af91ab2d7cd011db47|1|0|636344423383702164&amp;sdata=oGGErYpGoijP85hv0e1HClZbC%2BRgeKIVJpko5QnBBaw%3D&amp;reserved=0

> -----Original Message-----
> From: xxxxx@lists.osr.com [mailto:bounce-633953-
> xxxxx@lists.osr.com] On Behalf Of xxxxx@osr.com
> Sent: Friday, June 30, 2017 1:03 PM
> To: Windows System Software Devs Interest List
> Subject: RE:[ntdev] Root enumerated EV-cert signed driver not loading
> Win10 1607
>
> OK, let’s step back a moment.
>
> In your initial post, you wrote:
>
>


>
> Those two things you wrote “root-enumerated” and “non-PnP” are at odds
> with each other.
>
> A software-only driver that is “root-enumerated” is by definition a PnP
> driver. The PDO is created by the Root Enumerator (the PnP Manager) and
> your driver is called at EvtDriverDeviceAdd.
>
> A Non-PnP Driver would be a kernel service. It would not be root
> enumerated, but would rather be started by the Service Control Manager.
> You do not HAVE an EvtDriverDeviceAdd in this case… you create your Device
> Object in DriverEntry. These drivers are almost always written in WDM,
> not KMDF.
>
> So… my question to you is: Which are you?
>
> To your follow-on question:
>
>


>
> Not true!
>
> First, WinDbg is supposed to be able to allow you to speculatively add
> breakpoints. So, if you’re driver is named Fred.sys, and you want to put a
> breakpoint in DriverEntry, you can just do:
>
> bp Fred!DriverEntry
>
> … even if your driver is not yet loaded.
>
> Of course, you could also hard-code a breakpoint within your DriverEntry
> entry point, and step-through the code that way.
>
> Not to mention, you probably want to start and end your DriverEntry entry
> point with DbgPrint statements that indicate what’s going on.
>
> Does that help any?
>
> Peter
> OSR
> @OSRSDrivers
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at:
> https:
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at https:
>
> To unsubscribe, visit the List Server section of OSR Online at
> https:


NTDEV is sponsored by OSR

Visit the list online at: https:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at https:

To unsubscribe, visit the List Server section of OSR Online at https:</https:></https:></https:></https:></https:></https:>

> I have a customer that uses a USB->Relay output board from a large supplier=
in that space.

Is it this kind of USB relays?

http://vusb.wikidot.com/project:driver-less-usb-relays-hid-interface

Do these devices work when connected over a USB 2 or 1.1 hub?

– pa

No, it is made by Sealevel. It uses a custom driver, not HID. They will not work on a 2.0 hub.

* Bob

? Bob Ammerman
? xxxxx@ramsystems.biz
716.864.8337

138 Liston St
Buffalo, NY 14223
www.ramsystems.biz

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-633997-
xxxxx@lists.osr.com] On Behalf Of xxxxx@fastmail.fm
Sent: Saturday, July 01, 2017 7:20 PM
To: Windows System Software Devs Interest List
> Subject: RE:[ntdev] Driver won’t work in USB3 world
>
> > I have a customer that uses a USB->Relay output board from a large
> supplier=
> in that space.
>
> Is it this kind of USB relays?
>
> http://vusb.wikidot.com/project:driver-less-usb-relays-hid-interface
>
> Do these devices work when connected over a USB 2 or 1.1 hub?
>
> – pa
>
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at:
> http:
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at http:
>
> To unsubscribe, visit the List Server section of OSR Online at
> http:</http:></http:></http:>