ATA passthru IOCTL

I need to utilize an ATA passthru command similar to the SCSI passthru and
although I see mention of one in the DDK documentation I cannot find it in
any of the header or source files. Does anyone else out there have
experience or knowlege of such and IOCTL?

Thanks Mike

W2K3 only.

Wouldn’t it be nice if the DDK actually indicated with each function, IOCTL,
and data structure, which versions of the OS support the item?

=====================
Mark Roddy

-----Original Message-----
From: Michael Miller [mailto:xxxxx@tabernus.com]
Sent: Friday, December 12, 2003 10:34 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] ATA passthru IOCTL

I need to utilize an ATA passthru command similar to the SCSI
passthru and although I see mention of one in the DDK
documentation I cannot find it in any of the header or source
files. Does anyone else out there have experience or
knowlege of such and IOCTL?

Thanks Mike


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as:
xxxxx@stratus.com To unsubscribe send a blank email to
xxxxx@lists.osr.com

Lets all make a X-mas wish list . This one would definitely be on mine.

But I doubt the information would be reliable, because there are
Service Packs and Hotfixes that may change what was originally
possible. On the other hand, a coarse classification (2k,XP,2K3) is
better than nothing.

Norbert.

“I know it all, I just can’t remember it all at once”
---- snip ----

Wouldn’t it be nice if the DDK actually indicated with each function, IOCTL,
and data structure, which versions of the OS support the item?
---- snip ----

Mark
Thanks for the info. I was pretty sure it was a “which version of windows”
issue but as you noted could not find an answer to that question.

Mike

If the SP changes the DDK-API then there ought to be a DDK release that goes
along with the SP.

Otherwise how exactly are you supposed to build a kernel object targeted for
a specific platform, using the defined procedures, if the data structure or
interface you are attempting to use is not defined in the DDK for that OS
version? Cut’n’paste?

=====================
Mark Roddy

-----Original Message-----
From: Norbert Kawulski [mailto:xxxxx@stollmann.de]
Sent: Friday, December 12, 2003 11:06 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Re: ATA passthru IOCTL

Lets all make a X-mas wish list . This one would definitely
be on mine.

But I doubt the information would be reliable, because there
are Service Packs and Hotfixes that may change what was
originally possible. On the other hand, a coarse
classification (2k,XP,2K3) is better than nothing.

Norbert.

“I know it all, I just can’t remember it all at once”
---- snip ----
> Wouldn’t it be nice if the DDK actually indicated with each
function,
> IOCTL, and data structure, which versions of the OS support
the item?
---- snip ----


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as:
xxxxx@stratus.com To unsubscribe send a blank email to
xxxxx@lists.osr.com

Mark, I fully agree.

Think of an interface becoming available through a hotfix
that wasn’t there before. Using it requires you to use a newer DDK, of
course. This surely will become clumsy and error prone, because you
have to avoid things that are not there even after the hotfix.

The alternatives(for being backward compatible) right now are:

  • Do a grep on the old ddk includes and try to find the
    function/structure you want to use.
  • or stick to the documentation that came with the DDK for your target
    system. Do not use the latest documentation when you need backward
    compatability.

Cut’n’paste ? NEVER!(… ok, sometimes :wink:

Norbert.

“There are people who do things and people who take the credit. It is
better to be in the first group because there is less competition.”
---- snip ----

If the SP changes the DDK-API then there ought to be a DDK release that goes
along with the SP.

Otherwise how exactly are you supposed to build a kernel object targeted for
a specific platform, using the defined procedures, if the data structure or
interface you are attempting to use is not defined in the DDK for that OS
version? Cut’n’paste?

=====================
Mark Roddy

> -----Original Message-----
> From: Norbert Kawulski [mailto:xxxxx@stollmann.de]
> Sent: Friday, December 12, 2003 11:06 AM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] Re: ATA passthru IOCTL
>
> Lets all make a X-mas wish list . This one would definitely
> be on mine.
>
> But I doubt the information would be reliable, because there
> are Service Packs and Hotfixes that may change what was
> originally possible. On the other hand, a coarse
> classification (2k,XP,2K3) is better than nothing.
>
> Norbert.
> --------
> “I know it all, I just can’t remember it all at once”
> ---- snip ----
> > Wouldn’t it be nice if the DDK actually indicated with each
> function,
> > IOCTL, and data structure, which versions of the OS support
> the item?
> ---- snip ----
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@stratus.com To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@stollmann.de
To unsubscribe send a blank email to xxxxx@lists.osr.com

---- snip ----

This has been bugging me for years… I’m going to submit a request for
this through official channels.

Roddy, Mark wrote:

W2K3 only.

Wouldn’t it be nice if the DDK actually indicated with each function, IOCTL,
and data structure, which versions of the OS support the item?

=====================
Mark Roddy

>-----Original Message-----
>From: Michael Miller [mailto:xxxxx@tabernus.com]
>Sent: Friday, December 12, 2003 10:34 AM
>To: Windows System Software Devs Interest List
>Subject: [ntdev] ATA passthru IOCTL
>
>I need to utilize an ATA passthru command similar to the SCSI
>passthru and although I see mention of one in the DDK
>documentation I cannot find it in any of the header or source
>files. Does anyone else out there have experience or
>knowlege of such and IOCTL?
>
>Thanks Mike
>
>—
>Questions? First check the Kernel Driver FAQ at
>http://www.osronline.com/article.cfm?id=256
>
>You are currently subscribed to ntdev as:
>xxxxx@stratus.com To unsubscribe send a blank email to
>xxxxx@lists.osr.com
>


Nick Ryan (MVP for DDK)

“Roddy, Mark” wrote in message news:xxxxx@ntdev…
>
> If the SP changes the DDK-API then there ought to be a DDK release that
goes
> along with the SP.
>
> Otherwise how exactly are you supposed to build a kernel object targeted
for
> a specific platform, using the defined procedures, if the data structure
or
> interface you are attempting to use is not defined in the DDK for that OS
> version? Cut’n’paste?

There have been. There is an XPSP1 DDK, as well as the W2K3 DDK & IFSKit
have all the bits for the current SPs of 2K and XP.

Phil

Philip D. Barila Windows DDK MVP
Seagate Technology, LLC
(720) 684-1842
As if I need to say it: Not speaking for Seagate.

I’m aware of that. I was simply responding to the argument that MS cannot
document the platform requirements in the API docs because service packs can
change the APIs.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Phil Barila
Sent: Saturday, December 13, 2003 1:02 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Re: ATA passthru IOCTL

“Roddy, Mark” wrote in message
> news:xxxxx@ntdev…
> >
> > If the SP changes the DDK-API then there ought to be a DDK release
> > that
> goes
> > along with the SP.
> >
> > Otherwise how exactly are you supposed to build a kernel object
> > targeted
> for
> > a specific platform, using the defined procedures, if the data
> > structure
> or
> > interface you are attempting to use is not defined in the
> DDK for that
> > OS version? Cut’n’paste?
>
> There have been. There is an XPSP1 DDK, as well as the W2K3
> DDK & IFSKit have all the bits for the current SPs of 2K and XP.
>
> Phil
> –
> Philip D. Barila Windows DDK MVP
> Seagate Technology, LLC
> (720) 684-1842
> As if I need to say it: Not speaking for Seagate.
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@hollistech.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

Mike,

I read through the thread to see if anything useful would be given to you.
It wasn’t. About all your gonna get is pontification about how the docs are
wrong. :))

Yes … the docs are wrong and need to be changed … but ATA pass through
also does not work in XP or in 2000. It does work, in a limited fashion in
Server 2003.

There is also a hotfix available that ports the Server 2003 fix back to XP,
and with a bit of judicious build and compilation work you can use the S2003
header files to build an XP driver. You can acquire that hotfix from PSS
(???) by referring to Q823870. The beta for XPXP2 is also due out at any
time and the fix is should be in it.

The fix is limited is scope because you cannot use the pass through DMA
commands. They will timeout on you.


Gary G. Little
Seagate Technologies, LLC

“Michael Miller” wrote in message news:xxxxx@ntdev…
>
> I need to utilize an ATA passthru command similar to the SCSI passthru and
> although I see mention of one in the DDK documentation I cannot find it in
> any of the header or source files. Does anyone else out there have
> experience or knowlege of such and IOCTL?
>
> Thanks Mike
>
>

Gary,
Sounds like you have spent some time chasing this rabbit. Thanks for the
info it will save me time not chasing down paths of frustration, of which
there are plenty without having to relearn what someone else already has
tried.

Guess I’m back to working on my own driver or getting help from an HBA
manufacturer as I need much broader OS support than what you have
described.

Thanks again
Mike

Mike,

I read through the thread to see if anything useful would be given to you.
It wasn’t. About all your gonna get is pontification about how the docs are
wrong. :))

Yes … the docs are wrong and need to be changed … but ATA pass through
also does not work in XP or in 2000. It does work, in a limited fashion in
Server 2003.

There is also a hotfix available that ports the Server 2003 fix back to XP,
and with a bit of judicious build and compilation work you can use the S2003
header files to build an XP driver. You can acquire that hotfix from PSS
(???) by referring to Q823870. The beta for XPXP2 is also due out at any
time and the fix is should be in it.

The fix is limited is scope because you cannot use the pass through DMA
commands. They will timeout on you.


Gary G. Little
Seagate Technologies, LLC

“Michael Miller” wrote in message news:xxxxx@ntdev…
> >
> > I need to utilize an ATA passthru command similar to the SCSI passthru and
> > although I see mention of one in the DDK documentation I cannot find it in
> > any of the header or source files. Does anyone else out there have
> > experience or knowlege of such and IOCTL?
> >
> > Thanks Mike
> >
> >

If all you need is support for one HBA, you can write your own ATAPI
mini-driver. Please note, don’t think miniport, since ATA as constituted for
2000 and XP is so bastardized that even a mini-port would be better. Hmmm
… no that probably won’t work either since ATAPI.sys still will not give
you the support you need. Look at the sources available in the DDK for
pciide and see that the only things exported to an ATA driver writer are the
“silly side of things”.

Your best bet would most likely be to write a mini-port using Storage Crafts
VSPORT. This would mean writing a SCSI miniport and providing the CDB to TFR
mapping for ATA pass through.

www.storagecraft.com


Gary G. Little
Seagate Technologies, LLC

“Michael Miller” wrote in message news:xxxxx@ntdev…
>
> Gary,
> Sounds like you have spent some time chasing this rabbit. Thanks for the
> info it will save me time not chasing down paths of frustration, of which
> there are plenty without having to relearn what someone else already has
> tried.
>
> Guess I’m back to working on my own driver or getting help from an HBA
> manufacturer as I need much broader OS support than what you have
> described.
>
> Thanks again
> Mike
>
> > Mike,
> >
> > I read through the thread to see if anything useful would be given to
you.
> > It wasn’t. About all your gonna get is pontification about how the docs
are
> > wrong. :))
> >
> > Yes … the docs are wrong and need to be changed … but ATA pass
through
> > also does not work in XP or in 2000. It does work, in a limited fashion
in
> > Server 2003.
> >
> > There is also a hotfix available that ports the Server 2003 fix back to
XP,
> > and with a bit of judicious build and compilation work you can use the
S2003
> > header files to build an XP driver. You can acquire that hotfix from PSS
> > (???) by referring to Q823870. The beta for XPXP2 is also due out at any
> > time and the fix is should be in it.
> >
> > The fix is limited is scope because you cannot use the pass through DMA
> > commands. They will timeout on you.
> >
> > –
> > Gary G. Little
> > Seagate Technologies, LLC
> >
> > “Michael Miller” wrote in message
news:xxxxx@ntdev…
> > >
> > > I need to utilize an ATA passthru command similar to the SCSI passthru
and
> > > although I see mention of one in the DDK documentation I cannot find
it in
> > > any of the header or source files. Does anyone else out there have
> > > experience or knowlege of such and IOCTL?
> > >
> > > Thanks Mike
> > >
> > >
>
>