Zero Length Write

We are working on USB-serial KMDF driver.

We have seen a peculiar situation in which…
The applications which uses our driver sends ZERO (0) length write requests to the device.

…Seems the corresponding firmware residing in the h/w having USB devices are expecting such data in their communication protocol.

Is it the correct behaviour to fwd such writes to the device? (as currently my driver is checking the Request->Length, if it is zero, I am just completing the Request without sending to the device).

If we f/w zero length writes to the USB device, any issue we may face in while getting clearance from DTM (unclassified reliabilty cases?)

Please advice.
Thanx in advance.

Forward on! This is the standard method for signaling “end of message” (or stream or block or…) for bulk endpoints.

Peter
OSR

Thanks,

Will this wont impact any of DTM cases planned to run (unclassified-reliability - Eg. DevpathExer)?

xxxxx@gmail.com wrote:

Thanks,

Will this wont impact any of DTM cases planned to run (unclassified-reliability - Eg. DevpathExer)?

The unclassified tests never send any actual data to your device. Most
of the tests are simply checking whether your driver handles
plug-and-play requests properly, including lots of surprise removals,
and a mind-numbing array of standby/suspend/hibernate/resume cycles.
For a USB device, they also check the way your device handles the
standard control pipe messages, like GetDescriptor and SetFeature, but
since they don’t know whether or not your bulk pipe connects to a remote
detonation device, they cannot possibly send any real data to your pipes.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.