How to properly call AtaPortInitialize from ataport in my miniport?

For some reason, unlike ScsiPortInitialize and StorPortInitialize, AtaPortInitialize seems to be not be properly documented (why tho?)

My question is, what are third and forth arguments? they seem to be different from the ScsiPortInitialize and ScsiPortInitialize, so what are the third and last arguments of AtaPortInitialize and how should i fill them up?

Anyone has a hint or something regarding AtaPortInitialize arguments? and also, why is it undocumented unlike ScsiPortInitialize & StorPortInitialize?

Because the ATAPort model has been deprecated for years? That’s my guess…

Peter

@“Peter_Viscarola_(OSR)” said:
Because the ATAPort model has been deprecated for years? That’s my guess…

Peter

But ataport isn’t that old tho, didn’t Microsoft introduced it in windows vista? at least based on MSDN, ataport is newer that scsiport and storport!

MSDN article :

https://docs.microsoft.com/en-us/windows-hardware/drivers/storage/storage-miniport-drivers

Why would anybody write an ATAPort driver today? Seriously. That’s a real question.

PATA (AKA IDE AKA ATA) is all but dead. If I had some kind of ultra cute unique PATA controller to support, I’d write a StorPort driver.

I’m not sure I understand what problem you’re trying to solve,

Peter

it is for IDE storage devices… Are you trying to recover ancient disks? Do
you know you can just buy cheap hardware that will convert from IDE to
usbstor? < $15.00. So like wtf?

Mark Roddy

Some of our clients are using ancient systems, and using ataport is my miniport is the only option right now.
So how can i properly call AtaPortInitialize, specially the fourth argument, is there any documentation on the fourth argument? is there any sample code out there?

Also i couldn’t find any useful information regarding the third argument either… it seems to be different from ScsiPortInitialize and StorPortInitialize.