### USBSTOR vS Uaspstor.sys in SATA<>USB

Hello

I am developing a type of SATA HDD and its also using a SATA<>USB 3
converter for easy use/test with a PC.

The drive is working, but I have tripped across a couple transfer size
issues.

When the drive connects to a Windows8 PC, it identifies as a UAS compliant
device. I can change this in the descriptor that is provided by the
SATA<>USB3 converter

My understanding is that the UAS device uses the UASPSTOR.sys driver. My HDD
also identifies as a 4K physical and 4K logical sector drive. During
operations, the driver/PC communicate in groups of 128 4k sectors, or 512KB
per transaction.

I want to increase this to groups of 512 4k sectors or at least 256 sectors.
How can do I this?

I found that in Windows7 only the USBSTOR.sys is used and there was a
registry/hotpatch that allows the user to specify a MaxTransferLength field
of upto 2MB, which would get me exactly the 512 4k sectors that I want.

In my Windows7 testing, I was only able to get 256 sectors - which is OK,
but I’d like to get 512 sectors.

So, is there a way I can increase the transfer length for a UASPSTOR driver
in Windows8?

Has someone verified that in Windows7, you can actually set a 2MB transfer
length and get a 512 4k sector transfer?

If I disable UAS mode on my SATA<>USB3 hardware , will the USBSTOR.sys
driver on Windows8/10 accept the MaxTransferLength patch in the registry so
I can also get 1MB to 2MB transfer sizes in Windows8/10

Thanks!

-Steve Spano

Finger Lakes Consulting, LLC

224 West Lake Road

Dryden Ny 13053

607-844-8505 x223

www.linkedin.com/in/sspano01

Steve Spano wrote:

When the drive connects to a Windows8 PC, it identifies as a UAS
compliant device. I can change this in the descriptor that is provided
by the SATA<>USB3 converter

My understanding is that the UAS device uses the UASPSTOR.sys driver.
My HDD also identifies as a 4K physical and 4K logical sector drive.
During operations, the driver/PC communicate in groups of 128 4k
sectors, or 512KB per transaction.

I want to increase this to groups of 512 4k sectors or at least 256
sectors. How can do I this?

What are you going to gain by this? 512kB per transaction covers more
than a millisecond. Bumping to 1MB isn’t going to improve your overhead
significantly.


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