I need to find the i/o port and status port for each IDE hard drive
connected to a system. So far I've been able to get these from the standard
primary/secondary IDE controller by using the following method:

1. Open \??\PhysicalDriveX, where X is the drive number I'm intersted in.
2. Send it an IOCTL_SCSI_GET_ADDRESS
3. Open \Device\ScsiPortX, where X is the PortNumber returned by
IOCTL_SCSI_GET_ADDRESS.
4. Send it IRP_MN_QUERY_DEVICE_RELATIONS with relation type of
TargetDeviceRelation
5. Use IoGetDeviceProperty to send the DEVICE_OBJECT returned by #4 a
DevicePropertyBootConfiguration query.
6. Walk through the CM_RESOURCE_LIST returned by #5 I can find the port
resources for the drive.

However, this doesn't work for a serial ATA drive for some reason. It works
fine up to #5, but the IoGetDeviceProperty returns
STATUS_OBJECT_NAME_NOT_FOUND (0xC0000034).

So, is there a better way to get this information for each IDE drive?

I've only been working with Windows device drivers for the past 3 weeks, so
if anything doesn't sound right, it probably isn't. Let me know if I can
provide more clarification to the question.

Thanks,
Josh

Re: How to find port resources used by hard drives? by Josh

Josh
Thu Oct 23 18:27:13 CDT 2003

A little more information. I wrote an upper filter and attached it to the
"Primary IDE Channel". For the standard IDE controller, when I get
IRP_MN_START_DEVICE I get all the resources associated with the channel.
For serial ATA, I don't get any resources. I must be going about this in
the wrong way, but I have not been able to find an object that will report
the resources for the serial ATA drive.

"Josh Dahlby" <n/a> wrote in message
news:eec5VPYmDHA.2312@TK2MSFTNGP12.phx.gbl...
> I need to find the i/o port and status port for each IDE hard drive
> connected to a system. So far I've been able to get these from the
standard
> primary/secondary IDE controller by using the following method:
>
> 1. Open \??\PhysicalDriveX, where X is the drive number I'm intersted in.
> 2. Send it an IOCTL_SCSI_GET_ADDRESS
> 3. Open \Device\ScsiPortX, where X is the PortNumber returned by
> IOCTL_SCSI_GET_ADDRESS.
> 4. Send it IRP_MN_QUERY_DEVICE_RELATIONS with relation type of
> TargetDeviceRelation
> 5. Use IoGetDeviceProperty to send the DEVICE_OBJECT returned by #4 a
> DevicePropertyBootConfiguration query.
> 6. Walk through the CM_RESOURCE_LIST returned by #5 I can find the port
> resources for the drive.
>
> However, this doesn't work for a serial ATA drive for some reason. It
works
> fine up to #5, but the IoGetDeviceProperty returns
> STATUS_OBJECT_NAME_NOT_FOUND (0xC0000034).
>
> So, is there a better way to get this information for each IDE drive?
>
> I've only been working with Windows device drivers for the past 3 weeks,
so
> if anything doesn't sound right, it probably isn't. Let me know if I can
> provide more clarification to the question.
>
> Thanks,
> Josh
>
>



Re: How to find port resources used by hard drives? by Josh

Josh
Fri Oct 24 11:46:57 CDT 2003

Well, I found the object the resources are associated with for serial ATA.
It is the "Standard Dual Channel PCI IDE Controller" (FiDO =
\Device\Ide\PciIdeX where X is the controller number). However, I cannot
open the object using IoGetDeviceObjectPointer, it returns
STATUS_INVALID_DEVICE_REQUEST (0xC0000010). Anyway, that seems like a
different question, so I'll post another message about it.

If anyone knows of a better way to get port resources for any given IDE hard
drive, I'd sure appreciate a hint.

Thanks,
Josh

"Josh Dahlby" <n/a> wrote in message
news:OPf$20bmDHA.1672@TK2MSFTNGP09.phx.gbl...
> A little more information. I wrote an upper filter and attached it to the
> "Primary IDE Channel". For the standard IDE controller, when I get
> IRP_MN_START_DEVICE I get all the resources associated with the channel.
> For serial ATA, I don't get any resources. I must be going about this in
> the wrong way, but I have not been able to find an object that will report
> the resources for the serial ATA drive.
>
> "Josh Dahlby" <n/a> wrote in message
> news:eec5VPYmDHA.2312@TK2MSFTNGP12.phx.gbl...
> > I need to find the i/o port and status port for each IDE hard drive
> > connected to a system. So far I've been able to get these from the
> standard
> > primary/secondary IDE controller by using the following method:
> >
> > 1. Open \??\PhysicalDriveX, where X is the drive number I'm intersted
in.
> > 2. Send it an IOCTL_SCSI_GET_ADDRESS
> > 3. Open \Device\ScsiPortX, where X is the PortNumber returned by
> > IOCTL_SCSI_GET_ADDRESS.
> > 4. Send it IRP_MN_QUERY_DEVICE_RELATIONS with relation type of
> > TargetDeviceRelation
> > 5. Use IoGetDeviceProperty to send the DEVICE_OBJECT returned by #4 a
> > DevicePropertyBootConfiguration query.
> > 6. Walk through the CM_RESOURCE_LIST returned by #5 I can find the port
> > resources for the drive.
> >
> > However, this doesn't work for a serial ATA drive for some reason. It
> works
> > fine up to #5, but the IoGetDeviceProperty returns
> > STATUS_OBJECT_NAME_NOT_FOUND (0xC0000034).
> >
> > So, is there a better way to get this information for each IDE drive?
> >
> > I've only been working with Windows device drivers for the past 3 weeks,
> so
> > if anything doesn't sound right, it probably isn't. Let me know if I
can
> > provide more clarification to the question.
> >
> > Thanks,
> > Josh
> >
> >
>
>



Re: How to find port resources used by hard drives? by Maxim

Maxim
Fri Oct 24 11:39:18 CDT 2003

> I need to find the i/o port and status port for each IDE hard drive
> connected to a system. So far I've been able to get these from the standard

For what? IDE drives can be attached to stuff like HighPoint RAIDs, which is
not compatible at register-level with ATA task file.

You cannot use these ports anyway, trying to access them will hinder the IDE
driver's work, and you will have a product which will crash once per hour or
so.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com



Re: How to find port resources used by hard drives? by Josh

Josh
Fri Oct 24 12:30:51 CDT 2003

I don't need to support RAID drives, so I suppose I should refine my
statement to being any drive exposing the ATA task file registers. I need
to support the standard IDE controller, serial ATA, and probably a few
specific IDE add-in cards.

I have worked out how to issue ATA commands to the drive without interfering
with the real drivers use of it. I've run millions of iterations of the
command I need while dong things like defragging, so I'm pretty sure I've
got it right. Well, for single processor systems anyway, which is all I
need to support at this time. Anyway, I don't have a choice. Because there
is no way to issue 48 bit ATA commands on XP and 2000, I have to write
directly to the registers. If Microsoft would backport
IOCTL_ATA_PASS_THROUGH to XP and 2000, then I wouldn't even have to write a
driver, but that doesn't seem likely.

Certainly if you have suggestions on how to issue a 48 bit ATA command to
the drive without doing it myself, I'd be interested to find out how. I
really don't want to write this driver as it adds quite a bit of complexity
to this application, but there doesn't seem to be any way around it.

Thanks,
Josh

"Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message
news:OKAk4KlmDHA.2772@TK2MSFTNGP10.phx.gbl...
> > I need to find the i/o port and status port for each IDE hard drive
> > connected to a system. So far I've been able to get these from the
standard
>
> For what? IDE drives can be attached to stuff like HighPoint RAIDs, which
is
> not compatible at register-level with ATA task file.
>
> You cannot use these ports anyway, trying to access them will hinder the
IDE
> driver's work, and you will have a product which will crash once per hour
or
> so.
>
> --
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> maxim@storagecraft.com
> http://www.storagecraft.com
>
>



Re: How to find port resources used by hard drives? by Phil

Phil
Fri Oct 24 13:09:23 CDT 2003

"Josh Dahlby" <n/a> wrote in message
news:u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl...
> I don't need to support RAID drives, so I suppose I should refine my
> statement to being any drive exposing the ATA task file registers. I need
> to support the standard IDE controller, serial ATA, and probably a few
> specific IDE add-in cards.
>
> I have worked out how to issue ATA commands to the drive without
interfering
> with the real drivers use of it. I've run millions of iterations of the
> command I need while dong things like defragging, so I'm pretty sure I've
> got it right. Well, for single processor systems anyway, which is all I
> need to support at this time. Anyway, I don't have a choice. Because
there
> is no way to issue 48 bit ATA commands on XP and 2000, I have to write
> directly to the registers. If Microsoft would backport
> IOCTL_ATA_PASS_THROUGH to XP and 2000, then I wouldn't even have to write
a
> driver, but that doesn't seem likely.

What *are* you doing? I know a way to write the device registers without
getting the ATA driver confused, but it's a hack that's not fit for
distribution outside of a lab. And if I ever find out what product you are
working on, I will ensure that nobody I care about buys it until I know you
aren't doing that anymore.

What 48 bit command are you trying to issue that isn't already covered by
the 48 bit support in 2000 SP3 & 4 and XP SP1? You do know that full 48 bit
support is available today, right? You do also know that a FLUSH CACHE is
the same as FLUSH CACHE EXT, except that you won't get a valid error output
if it fails to flush an LBA that is more than 28 bits? Are you playing with
the HPA?

If you still need ATA_PASS_THROUGH after all that, XP is done, and you can
ask the Support group for the hotfix for the cost of the phone call.
Windows 2000 is in process.

> Certainly if you have suggestions on how to issue a 48 bit ATA command to
> the drive without doing it myself, I'd be interested to find out how. I
> really don't want to write this driver as it adds quite a bit of
complexity
> to this application, but there doesn't seem to be any way around it.

Again, what 48 bit command do you need beyond READ & WRITE? Thsoe can be
handled by opening the device for R/W and issuing Read/WriteFile() with
offset and length that are integer multiples of the disk sector size. Since
you are talking about ATA drives, for the time being, that's precisely 512
bytes.

Phil
--
Philip D. Barila Windows DDK MVP
Seagate Technology, LLC
(720) 684-1842
As if I need to say it: Not speaking for Seagate.
E-mail address is pointed at a domain squatter. Use reply-to instead.



Re: How to find port resources used by hard drives? by Josh

Josh
Fri Oct 24 13:31:49 CDT 2003

I'm dealing with the HPA, which is why I need to issue the 48 bit commands.

Here is a summary of what I do to issue a command:
1. Wait until the drive is in a state that I can restore (BSY=0, DRQ=0,
ERR=0, DRDY=1).
2. Disable interrupts (which is why it is single processor only at the
moment since I only deal with the one processor).
3. Make sure the state is still okay.
4. Backup all the registers (28-bit and 48-bit)
5. Issue my command
6. If my command failed, then issue a command that succeeds to get the
status register back into the state it was in before.
7. Restore the drive registers from my backup.
8. Reenable interrupts.

If you see where this could fail on a single processor system, I'd certainly
appreciate comments on anything that I've missed. As I said, I've tested
this quite a bit and the drive has always been in the exact state when I
leave it as when I enter.

> If you still need ATA_PASS_THROUGH after all that, XP is done, and you can
> ask the Support group for the hotfix for the cost of the phone call.
> Windows 2000 is in process.

The last time we checked, they were not going to backport. You say there is
a hotfix available for this now? I would much rather use ATA_PASS_THROUGH
than write my own. Do you know when this became available and any idea of
when the 2000 version will be done?

Josh

"Phil Barila" <PBarila@Barila.com> wrote in message
news:ssGdnfHUVpJO9wSiRVn-tw@4dv.net...
> "Josh Dahlby" <n/a> wrote in message
> news:u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl...
> > I don't need to support RAID drives, so I suppose I should refine my
> > statement to being any drive exposing the ATA task file registers. I
need
> > to support the standard IDE controller, serial ATA, and probably a few
> > specific IDE add-in cards.
> >
> > I have worked out how to issue ATA commands to the drive without
> interfering
> > with the real drivers use of it. I've run millions of iterations of the
> > command I need while dong things like defragging, so I'm pretty sure
I've
> > got it right. Well, for single processor systems anyway, which is all I
> > need to support at this time. Anyway, I don't have a choice. Because
> there
> > is no way to issue 48 bit ATA commands on XP and 2000, I have to write
> > directly to the registers. If Microsoft would backport
> > IOCTL_ATA_PASS_THROUGH to XP and 2000, then I wouldn't even have to
write
> a
> > driver, but that doesn't seem likely.
>
> What *are* you doing? I know a way to write the device registers without
> getting the ATA driver confused, but it's a hack that's not fit for
> distribution outside of a lab. And if I ever find out what product you
are
> working on, I will ensure that nobody I care about buys it until I know
you
> aren't doing that anymore.
>
> What 48 bit command are you trying to issue that isn't already covered by
> the 48 bit support in 2000 SP3 & 4 and XP SP1? You do know that full 48
bit
> support is available today, right? You do also know that a FLUSH CACHE is
> the same as FLUSH CACHE EXT, except that you won't get a valid error
output
> if it fails to flush an LBA that is more than 28 bits? Are you playing
with
> the HPA?
>
> If you still need ATA_PASS_THROUGH after all that, XP is done, and you can
> ask the Support group for the hotfix for the cost of the phone call.
> Windows 2000 is in process.
>
> > Certainly if you have suggestions on how to issue a 48 bit ATA command
to
> > the drive without doing it myself, I'd be interested to find out how. I
> > really don't want to write this driver as it adds quite a bit of
> complexity
> > to this application, but there doesn't seem to be any way around it.
>
> Again, what 48 bit command do you need beyond READ & WRITE? Thsoe can be
> handled by opening the device for R/W and issuing Read/WriteFile() with
> offset and length that are integer multiples of the disk sector size.
Since
> you are talking about ATA drives, for the time being, that's precisely 512
> bytes.
>
> Phil
> --
> Philip D. Barila Windows DDK MVP
> Seagate Technology, LLC
> (720) 684-1842
> As if I need to say it: Not speaking for Seagate.
> E-mail address is pointed at a domain squatter. Use reply-to instead.
>
>



Re: How to find port resources used by hard drives? by Phil

Phil
Fri Oct 24 17:52:51 CDT 2003

"Josh Dahlby" <n/a> wrote in message
news:uyvZX0lmDHA.708@TK2MSFTNGP10.phx.gbl...
> I'm dealing with the HPA, which is why I need to issue the 48 bit
commands.
>
> Here is a summary of what I do to issue a command:
> 1. Wait until the drive is in a state that I can restore (BSY=0, DRQ=0,
> ERR=0, DRDY=1).
> 2. Disable interrupts (which is why it is single processor only at the
> moment since I only deal with the one processor).
> 3. Make sure the state is still okay.
> 4. Backup all the registers (28-bit and 48-bit)
> 5. Issue my command
> 6. If my command failed, then issue a command that succeeds to get the
> status register back into the state it was in before.
> 7. Restore the drive registers from my backup.
> 8. Reenable interrupts.

Uggh. You made it even uglier than I thought. Wait for ATA_PASS_THROUGH.

> If you see where this could fail on a single processor system, I'd
certainly
> appreciate comments on anything that I've missed. As I said, I've tested
> this quite a bit and the drive has always been in the exact state when I
> leave it as when I enter.

And when someone decides they need your protected area on a 2P system?
Boom!

> > If you still need ATA_PASS_THROUGH after all that, XP is done, and you
can
> > ask the Support group for the hotfix for the cost of the phone call.
> > Windows 2000 is in process.
>
> The last time we checked, they were not going to backport. You say there
is
> a hotfix available for this now? I would much rather use ATA_PASS_THROUGH
> than write my own. Do you know when this became available and any idea of
> when the 2000 version will be done?

When was the last time you checked? The XP hotfix is available now. It's
been available since the end of August, give or take a few days.

Call MS Customer Support and ask them for the ATAPI hotfix for Windows XP
SP1. You may have to dance with the rep on the phone for a while until
he/she finds what you need, but it's definitely available.

Phil
--
Philip D. Barila Windows DDK MVP
Seagate Technology, LLC
(720) 684-1842
As if I need to say it: Not speaking for Seagate.
E-mail address is pointed at a domain squatter. Use reply-to instead.



Re: How to find port resources used by hard drives? by Josh

Josh
Fri Oct 24 18:31:09 CDT 2003

Hi Phil, thanks for the information about the HotFix. We'll follow that up
and see if we can find it. We are still going to have some issues because
we also need to work with the Intel Application Accelerator, but we'll have
to deal with that one way or another.

> Uggh. You made it even uglier than I thought. Wait for ATA_PASS_THROUGH.

Could you be more specific? What do you see that is wrong? If you just
mean it is a hack, then by all means I agree. If you think this will cause
problems, then please let me know what you think is wrong.

> And when someone decides they need your protected area on a 2P system?
> Boom!

We are fine with the limitation and the product will not install on a
multi-processor system.

Josh

"Phil Barila" <PBarila@Barila.com> wrote in message
news:N7Cdnfk0FtreMASiRVn-jw@4dv.net...
> "Josh Dahlby" <n/a> wrote in message
> news:uyvZX0lmDHA.708@TK2MSFTNGP10.phx.gbl...
> > I'm dealing with the HPA, which is why I need to issue the 48 bit
> commands.
> >
> > Here is a summary of what I do to issue a command:
> > 1. Wait until the drive is in a state that I can restore (BSY=0, DRQ=0,
> > ERR=0, DRDY=1).
> > 2. Disable interrupts (which is why it is single processor only at the
> > moment since I only deal with the one processor).
> > 3. Make sure the state is still okay.
> > 4. Backup all the registers (28-bit and 48-bit)
> > 5. Issue my command
> > 6. If my command failed, then issue a command that succeeds to get the
> > status register back into the state it was in before.
> > 7. Restore the drive registers from my backup.
> > 8. Reenable interrupts.
>
> Uggh. You made it even uglier than I thought. Wait for ATA_PASS_THROUGH.
>
> > If you see where this could fail on a single processor system, I'd
> certainly
> > appreciate comments on anything that I've missed. As I said, I've
tested
> > this quite a bit and the drive has always been in the exact state when I
> > leave it as when I enter.
>
> And when someone decides they need your protected area on a 2P system?
> Boom!
>
> > > If you still need ATA_PASS_THROUGH after all that, XP is done, and you
> can
> > > ask the Support group for the hotfix for the cost of the phone call.
> > > Windows 2000 is in process.
> >
> > The last time we checked, they were not going to backport. You say
there
> is
> > a hotfix available for this now? I would much rather use
ATA_PASS_THROUGH
> > than write my own. Do you know when this became available and any idea
of
> > when the 2000 version will be done?
>
> When was the last time you checked? The XP hotfix is available now. It's
> been available since the end of August, give or take a few days.
>
> Call MS Customer Support and ask them for the ATAPI hotfix for Windows XP
> SP1. You may have to dance with the rep on the phone for a while until
> he/she finds what you need, but it's definitely available.
>
> Phil
> --
> Philip D. Barila Windows DDK MVP
> Seagate Technology, LLC
> (720) 684-1842
> As if I need to say it: Not speaking for Seagate.
> E-mail address is pointed at a domain squatter. Use reply-to instead.
>
>



Re: How to find port resources used by hard drives? by wendyshi

wendyshi
Tue Oct 28 12:49:36 CST 2003

------=_NextPart_0001_DC732527
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Phil is right. We are backporting ATA_PASS_THROUGH to XP and 2000. For XP,
the complete fix will be available in XP SP2 (but I am not sure when SP2
will be ready). An intermediate hotfix will be available in a KB article in
about a month or two. I can post a message here once it's ready. For 2000,
it's still in progress.


This posting is provided "AS IS" with no warranties, and confers no rights.



--------------------
NNTP-Posting-Date: Fri, 24 Oct 2003 13:09:23 -0500
Reply-To: "Phil Barila" <PBarila@Seagate.com>
From: "Phil Barila" <PBarila@Barila.com>
Newsgroups: microsoft.public.development.device.drivers
References: <eec5VPYmDHA.2312@TK2MSFTNGP12.phx.gbl>
<OKAk4KlmDHA.2772@TK2MSFTNGP10.phx.gbl>
<u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl>
Subject: Re: How to find port resources used by hard drives?
Date: Fri, 24 Oct 2003 12:09:26 -0600
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Message-ID: <ssGdnfHUVpJO9wSiRVn-tw@4dv.net>
Lines: 58
NNTP-Posting-Host: 192.55.20.36
X-Trace:
sv3-TxTVAqvpY0jEPpbHk7ofWe/cOq+Lr2xSe6scVUHClITk5MW/cvcsg5F5bQwxNOr9OdZP3TSu
kbu45X4!lOOkKqIeMBYbbIut3nrdplUiTJjaN/NrY/YUxnijOYS3y0+ykWDpdvCvH/cHmSSkwGr+
Aw==
X-Complaints-To: abuse@4dv.net
X-DMCA-Complaints-To: abuse@4dv.net
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your
complaint properly
X-Postfilter: 1.1
Path:
cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed00.sul.t-online.de!t-onlin
e.de!news-lei1.dfn.de!news-fra1.dfn.de!npeer.de.kpn-eurorings.net!small1.nnt
p.aus1.giganews.com!border1.nntp.aus1.giganews.com!intern1.nntp.aus1.giganew
s.com!nntp.giganews.com!nntp.4dv.net!news.4dv.net.POSTED!not-for-mail
Xref: cpmsftngxa06.phx.gbl microsoft.public.development.device.drivers:32965
X-Tomcat-NG: microsoft.public.development.device.drivers

"Josh Dahlby" <n/a> wrote in message
news:u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl...
> I don't need to support RAID drives, so I suppose I should refine my
> statement to being any drive exposing the ATA task file registers. I need
> to support the standard IDE controller, serial ATA, and probably a few
> specific IDE add-in cards.
>
> I have worked out how to issue ATA commands to the drive without
interfering
> with the real drivers use of it. I've run millions of iterations of the
> command I need while dong things like defragging, so I'm pretty sure I've
> got it right. Well, for single processor systems anyway, which is all I
> need to support at this time. Anyway, I don't have a choice. Because
there
> is no way to issue 48 bit ATA commands on XP and 2000, I have to write
> directly to the registers. If Microsoft would backport
> IOCTL_ATA_PASS_THROUGH to XP and 2000, then I wouldn't even have to write
a
> driver, but that doesn't seem likely.

What *are* you doing? I know a way to write the device registers without
getting the ATA driver confused, but it's a hack that's not fit for
distribution outside of a lab. And if I ever find out what product you are
working on, I will ensure that nobody I care about buys it until I know you
aren't doing that anymore.

What 48 bit command are you trying to issue that isn't already covered by
the 48 bit support in 2000 SP3 & 4 and XP SP1? You do know that full 48 bit
support is available today, right? You do also know that a FLUSH CACHE is
the same as FLUSH CACHE EXT, except that you won't get a valid error output
if it fails to flush an LBA that is more than 28 bits? Are you playing with
the HPA?

If you still need ATA_PASS_THROUGH after all that, XP is done, and you can
ask the Support group for the hotfix for the cost of the phone call.
Windows 2000 is in process.

> Certainly if you have suggestions on how to issue a 48 bit ATA command to
> the drive without doing it myself, I'd be interested to find out how. I
> really don't want to write this driver as it adds quite a bit of
complexity
> to this application, but there doesn't seem to be any way around it.

Again, what 48 bit command do you need beyond READ & WRITE? Thsoe can be
handled by opening the device for R/W and issuing Read/WriteFile() with
offset and length that are integer multiples of the disk sector size. Since
you are talking about ATA drives, for the time being, that's precisely 512
bytes.

Phil
--
Philip D. Barila Windows DDK MVP
Seagate Technology, LLC
(720) 684-1842
As if I need to say it: Not speaking for Seagate.
E-mail address is pointed at a domain squatter. Use reply-to instead.



------=_NextPart_0001_DC732527
Content-Type: text/x-rtf
Content-Transfer-Encoding: 7bit

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fprq2\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs20 Phil is right. We are backporting ATA_PASS_THROUGH to XP and 2000. For XP, the complete fix will be available in XP SP2 (but I am not sure when SP2 will be ready). An intermediate hotfix will be available in a KB article in about a month or two. I can post a message here once it's ready. For 2000, it's still in progress.
\par
\par
\par This posting is provided "AS IS" with no warranties, and confers no rights.
\par
\par
\par
\par \pard\li720 --------------------
\par NNTP-Posting-Date: Fri, 24 Oct 2003 13:09:23 -0500
\par Reply-To: "Phil Barila" <PBarila@Seagate.com>
\par From: "Phil Barila" <PBarila@Barila.com>
\par Newsgroups: microsoft.public.development.device.drivers
\par References: <eec5VPYmDHA.2312@TK2MSFTNGP12.phx.gbl> <OKAk4KlmDHA.2772@TK2MSFTNGP10.phx.gbl> <u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl>
\par Subject: Re: How to find port resources used by hard drives?
\par Date: Fri, 24 Oct 2003 12:09:26 -0600
\par X-Priority: 3
\par X-MSMail-Priority: Normal
\par X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
\par X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
\par Message-ID: <ssGdnfHUVpJO9wSiRVn-tw@4dv.net>
\par Lines: 58
\par NNTP-Posting-Host: 192.55.20.36
\par X-Trace: sv3-TxTVAqvpY0jEPpbHk7ofWe/cOq+Lr2xSe6scVUHClITk5MW/cvcsg5F5bQwxNOr9OdZP3TSukbu45X4!lOOkKqIeMBYbbIut3nrdplUiTJjaN/NrY/YUxnijOYS3y0+ykWDpdvCvH/cHmSSkwGr+Aw==
\par X-Complaints-To: abuse@4dv.net
\par X-DMCA-Complaints-To: abuse@4dv.net
\par X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
\par X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
\par X-Postfilter: 1.1
\par Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed00.sul.t-online.de!t-online.de!news-lei1.dfn.de!news-fra1.dfn.de!npeer.de.kpn-eurorings.net!small1.nntp.aus1.giganews.com!border1.nntp.aus1.giganews.com!intern1.nntp.aus1.giganews.com!nntp.giganews.com!nntp.4dv.net!news.4dv.net.POSTED!not-for-mail
\par Xref: cpmsftngxa06.phx.gbl microsoft.public.development.device.drivers:32965
\par X-Tomcat-NG: microsoft.public.development.device.drivers
\par
\par "Josh Dahlby" <n/a> wrote in message
\par news:u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl...
\par > I don't need to support RAID drives, so I suppose I should refine my
\par > statement to being any drive exposing the ATA task file registers. I need
\par > to support the standard IDE controller, serial ATA, and probably a few
\par > specific IDE add-in cards.
\par >
\par > I have worked out how to issue ATA commands to the drive without
\par interfering
\par > with the real drivers use of it. I've run millions of iterations of the
\par > command I need while dong things like defragging, so I'm pretty sure I've
\par > got it right. Well, for single processor systems anyway, which is all I
\par > need to support at this time. Anyway, I don't have a choice. Because
\par there
\par > is no way to issue 48 bit ATA commands on XP and 2000, I have to write
\par > directly to the registers. If Microsoft would backport
\par > IOCTL_ATA_PASS_THROUGH to XP and 2000, then I wouldn't even have to write
\par a
\par > driver, but that doesn't seem likely.
\par
\par What *are* you doing? I know a way to write the device registers without
\par getting the ATA driver confused, but it's a hack that's not fit for
\par distribution outside of a lab. And if I ever find out what product you are
\par working on, I will ensure that nobody I care about buys it until I know you
\par aren't doing that anymore.
\par
\par What 48 bit command are you trying to issue that isn't already covered by
\par the 48 bit support in 2000 SP3 & 4 and XP SP1? You do know that full 48 bit
\par support is available today, right? You do also know that a FLUSH CACHE is
\par the same as FLUSH CACHE EXT, except that you won't get a valid error output
\par if it fails to flush an LBA that is more than 28 bits? Are you playing with
\par the HPA?
\par
\par If you still need ATA_PASS_THROUGH after all that, XP is done, and you can
\par ask the Support group for the hotfix for the cost of the phone call.
\par Windows 2000 is in process.
\par
\par > Certainly if you have suggestions on how to issue a 48 bit ATA command to
\par > the drive without doing it myself, I'd be interested to find out how. I
\par > really don't want to write this driver as it adds quite a bit of
\par complexity
\par > to this application, but there doesn't seem to be any way around it.
\par
\par Again, what 48 bit command do you need beyond READ & WRITE? Thsoe can be
\par handled by opening the device for R/W and issuing Read/WriteFile() with
\par offset and length that are integer multiples of the disk sector size. Since
\par you are talking about ATA drives, for the time being, that's precisely 512
\par bytes.
\par
\par Phil
\par --
\par Philip D. Barila Windows DDK MVP
\par Seagate Technology, LLC
\par (720) 684-1842
\par As if I need to say it: Not speaking for Seagate.
\par E-mail address is pointed at a domain squatter. Use reply-to instead.
\par
\par
\par \pard
\par
\par }
------=_NextPart_0001_DC732527--


Re: How to find port resources used by hard drives? by Josh

Josh
Tue Oct 28 13:27:00 CST 2003

That is good news. Thanks Wendy. Do you have any idea what the time frame
is for 2000?

""Wendy Shi [MS]"" <wendyshi@online.microsoft.com> wrote in message
news:i3ArBRYnDHA.2624@cpmsftngxa06.phx.gbl...
> Phil is right. We are backporting ATA_PASS_THROUGH to XP and 2000. For XP,
> the complete fix will be available in XP SP2 (but I am not sure when SP2
> will be ready). An intermediate hotfix will be available in a KB article
in
> about a month or two. I can post a message here once it's ready. For 2000,
> it's still in progress.
>
>
> This posting is provided "AS IS" with no warranties, and confers no
rights.
>
>
>
> --------------------
> NNTP-Posting-Date: Fri, 24 Oct 2003 13:09:23 -0500
> Reply-To: "Phil Barila" <PBarila@Seagate.com>
> From: "Phil Barila" <PBarila@Barila.com>
> Newsgroups: microsoft.public.development.device.drivers
> References: <eec5VPYmDHA.2312@TK2MSFTNGP12.phx.gbl>
> <OKAk4KlmDHA.2772@TK2MSFTNGP10.phx.gbl>
> <u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl>
> Subject: Re: How to find port resources used by hard drives?
> Date: Fri, 24 Oct 2003 12:09:26 -0600
> X-Priority: 3
> X-MSMail-Priority: Normal
> X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
> X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
> Message-ID: <ssGdnfHUVpJO9wSiRVn-tw@4dv.net>
> Lines: 58
> NNTP-Posting-Host: 192.55.20.36
> X-Trace:
>
sv3-TxTVAqvpY0jEPpbHk7ofWe/cOq+Lr2xSe6scVUHClITk5MW/cvcsg5F5bQwxNOr9OdZP3TSu
>
kbu45X4!lOOkKqIeMBYbbIut3nrdplUiTJjaN/NrY/YUxnijOYS3y0+ykWDpdvCvH/cHmSSkwGr+
> Aw==
> X-Complaints-To: abuse@4dv.net
> X-DMCA-Complaints-To: abuse@4dv.net
> X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
> X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your
> complaint properly
> X-Postfilter: 1.1
> Path:
>
cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed00.sul.t-online.de!t-onlin
>
e.de!news-lei1.dfn.de!news-fra1.dfn.de!npeer.de.kpn-eurorings.net!small1.nnt
>
p.aus1.giganews.com!border1.nntp.aus1.giganews.com!intern1.nntp.aus1.giganew
> s.com!nntp.giganews.com!nntp.4dv.net!news.4dv.net.POSTED!not-for-mail
> Xref: cpmsftngxa06.phx.gbl
microsoft.public.development.device.drivers:32965
> X-Tomcat-NG: microsoft.public.development.device.drivers
>
> "Josh Dahlby" <n/a> wrote in message
> news:u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl...
> > I don't need to support RAID drives, so I suppose I should refine my
> > statement to being any drive exposing the ATA task file registers. I
need
> > to support the standard IDE controller, serial ATA, and probably a few
> > specific IDE add-in cards.
> >
> > I have worked out how to issue ATA commands to the drive without
> interfering
> > with the real drivers use of it. I've run millions of iterations of the
> > command I need while dong things like defragging, so I'm pretty sure
I've
> > got it right. Well, for single processor systems anyway, which is all I
> > need to support at this time. Anyway, I don't have a choice. Because
> there
> > is no way to issue 48 bit ATA commands on XP and 2000, I have to write
> > directly to the registers. If Microsoft would backport
> > IOCTL_ATA_PASS_THROUGH to XP and 2000, then I wouldn't even have to
write
> a
> > driver, but that doesn't seem likely.
>
> What *are* you doing? I know a way to write the device registers without
> getting the ATA driver confused, but it's a hack that's not fit for
> distribution outside of a lab. And if I ever find out what product you
are
> working on, I will ensure that nobody I care about buys it until I know
you
> aren't doing that anymore.
>
> What 48 bit command are you trying to issue that isn't already covered by
> the 48 bit support in 2000 SP3 & 4 and XP SP1? You do know that full 48
bit
> support is available today, right? You do also know that a FLUSH CACHE is
> the same as FLUSH CACHE EXT, except that you won't get a valid error
output
> if it fails to flush an LBA that is more than 28 bits? Are you playing
with
> the HPA?
>
> If you still need ATA_PASS_THROUGH after all that, XP is done, and you can
> ask the Support group for the hotfix for the cost of the phone call.
> Windows 2000 is in process.
>
> > Certainly if you have suggestions on how to issue a 48 bit ATA command
to
> > the drive without doing it myself, I'd be interested to find out how. I
> > really don't want to write this driver as it adds quite a bit of
> complexity
> > to this application, but there doesn't seem to be any way around it.
>
> Again, what 48 bit command do you need beyond READ & WRITE? Thsoe can be
> handled by opening the device for R/W and issuing Read/WriteFile() with
> offset and length that are integer multiples of the disk sector size.
Since
> you are talking about ATA drives, for the time being, that's precisely 512
> bytes.
>
> Phil
> --
> Philip D. Barila Windows DDK MVP
> Seagate Technology, LLC
> (720) 684-1842
> As if I need to say it: Not speaking for Seagate.
> E-mail address is pointed at a domain squatter. Use reply-to instead.
>
>
>



Re: How to find port resources used by hard drives? by wendyshi

wendyshi
Wed Oct 29 22:38:56 CST 2003

------=_NextPart_0001_E3B4F475
Content-Type: text/plain
Content-Transfer-Encoding: 7bit


I am not sure. The developer mentioned it could be a month or so.


This posting is provided "AS IS" with no warranties, and confers no rights.






--------------------
From: "Josh Dahlby" <n/a>
References: <eec5VPYmDHA.2312@TK2MSFTNGP12.phx.gbl>
<OKAk4KlmDHA.2772@TK2MSFTNGP10.phx.gbl>
<u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl> <ssGdnfHUVpJO9wSiRVn-tw@4dv.net>
<i3ArBRYnDHA.2624@cpmsftngxa06.phx.gbl>
Subject: Re: How to find port resources used by hard drives?
Date: Tue, 28 Oct 2003 11:27:00 -0800
Lines: 130
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Message-ID: <ezzG4lYnDHA.1408@TK2MSFTNGP11.phx.gbl>
Newsgroups: microsoft.public.development.device.drivers
NNTP-Posting-Host: 66-126-254-121.ded.pacbell.net 66.126.254.121
Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP11.phx.gbl
Xref: cpmsftngxa06.phx.gbl microsoft.public.development.device.drivers:33110
X-Tomcat-NG: microsoft.public.development.device.drivers

That is good news. Thanks Wendy. Do you have any idea what the time frame
is for 2000?

""Wendy Shi [MS]"" <wendyshi@online.microsoft.com> wrote in message
news:i3ArBRYnDHA.2624@cpmsftngxa06.phx.gbl...
> Phil is right. We are backporting ATA_PASS_THROUGH to XP and 2000. For XP,
> the complete fix will be available in XP SP2 (but I am not sure when SP2
> will be ready). An intermediate hotfix will be available in a KB article
in
> about a month or two. I can post a message here once it's ready. For 2000,
> it's still in progress.
>
>
> This posting is provided "AS IS" with no warranties, and confers no
rights.
>
>
>
> --------------------
> NNTP-Posting-Date: Fri, 24 Oct 2003 13:09:23 -0500
> Reply-To: "Phil Barila" <PBarila@Seagate.com>
> From: "Phil Barila" <PBarila@Barila.com>
> Newsgroups: microsoft.public.development.device.drivers
> References: <eec5VPYmDHA.2312@TK2MSFTNGP12.phx.gbl>
> <OKAk4KlmDHA.2772@TK2MSFTNGP10.phx.gbl>
> <u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl>
> Subject: Re: How to find port resources used by hard drives?
> Date: Fri, 24 Oct 2003 12:09:26 -0600
> X-Priority: 3
> X-MSMail-Priority: Normal
> X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
> X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
> Message-ID: <ssGdnfHUVpJO9wSiRVn-tw@4dv.net>
> Lines: 58
> NNTP-Posting-Host: 192.55.20.36
> X-Trace:
>
sv3-TxTVAqvpY0jEPpbHk7ofWe/cOq+Lr2xSe6scVUHClITk5MW/cvcsg5F5bQwxNOr9OdZP3TSu
>
kbu45X4!lOOkKqIeMBYbbIut3nrdplUiTJjaN/NrY/YUxnijOYS3y0+ykWDpdvCvH/cHmSSkwGr+
> Aw==
> X-Complaints-To: abuse@4dv.net
> X-DMCA-Complaints-To: abuse@4dv.net
> X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
> X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your
> complaint properly
> X-Postfilter: 1.1
> Path:
>
cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed00.sul.t-online.de!t-onlin
>
e.de!news-lei1.dfn.de!news-fra1.dfn.de!npeer.de.kpn-eurorings.net!small1.nnt
>
p.aus1.giganews.com!border1.nntp.aus1.giganews.com!intern1.nntp.aus1.giganew
> s.com!nntp.giganews.com!nntp.4dv.net!news.4dv.net.POSTED!not-for-mail
> Xref: cpmsftngxa06.phx.gbl
microsoft.public.development.device.drivers:32965
> X-Tomcat-NG: microsoft.public.development.device.drivers
>
> "Josh Dahlby" <n/a> wrote in message
> news:u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl...
> > I don't need to support RAID drives, so I suppose I should refine my
> > statement to being any drive exposing the ATA task file registers. I
need
> > to support the standard IDE controller, serial ATA, and probably a few
> > specific IDE add-in cards.
> >
> > I have worked out how to issue ATA commands to the drive without
> interfering
> > with the real drivers use of it. I've run millions of iterations of the
> > command I need while dong things like defragging, so I'm pretty sure
I've
> > got it right. Well, for single processor systems anyway, which is all I
> > need to support at this time. Anyway, I don't have a choice. Because
> there
> > is no way to issue 48 bit ATA commands on XP and 2000, I have to write
> > directly to the registers. If Microsoft would backport
> > IOCTL_ATA_PASS_THROUGH to XP and 2000, then I wouldn't even have to
write
> a
> > driver, but that doesn't seem likely.
>
> What *are* you doing? I know a way to write the device registers without
> getting the ATA driver confused, but it's a hack that's not fit for
> distribution outside of a lab. And if I ever find out what product you
are
> working on, I will ensure that nobody I care about buys it until I know
you
> aren't doing that anymore.
>
> What 48 bit command are you trying to issue that isn't already covered by
> the 48 bit support in 2000 SP3 & 4 and XP SP1? You do know that full 48
bit
> support is available today, right? You do also know that a FLUSH CACHE is
> the same as FLUSH CACHE EXT, except that you won't get a valid error
output
> if it fails to flush an LBA that is more than 28 bits? Are you playing
with
> the HPA?
>
> If you still need ATA_PASS_THROUGH after all that, XP is done, and you can
> ask the Support group for the hotfix for the cost of the phone call.
> Windows 2000 is in process.
>
> > Certainly if you have suggestions on how to issue a 48 bit ATA command
to
> > the drive without doing it myself, I'd be interested to find out how. I
> > really don't want to write this driver as it adds quite a bit of
> complexity
> > to this application, but there doesn't seem to be any way around it.
>
> Again, what 48 bit command do you need beyond READ & WRITE? Thsoe can be
> handled by opening the device for R/W and issuing Read/WriteFile() with
> offset and length that are integer multiples of the disk sector size.
Since
> you are talking about ATA drives, for the time being, that's precisely 512
> bytes.
>
> Phil
> --
> Philip D. Barila Windows DDK MVP
> Seagate Technology, LLC
> (720) 684-1842
> As if I need to say it: Not speaking for Seagate.
> E-mail address is pointed at a domain squatter. Use reply-to instead.
>
>
>



------=_NextPart_0001_E3B4F475
Content-Type: text/x-rtf
Content-Transfer-Encoding: 7bit

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fprq2\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs20
\par I am not sure. The developer mentioned it could be a month or so.
\par
\par
\par This posting is provided "AS IS" with no warranties, and confers no rights.
\par
\par
\par
\par
\par
\par
\par \pard\li720 --------------------
\par From: "Josh Dahlby" <n/a>
\par References: <eec5VPYmDHA.2312@TK2MSFTNGP12.phx.gbl> <OKAk4KlmDHA.2772@TK2MSFTNGP10.phx.gbl> <u2VFTSlmDHA.2592@TK2MSFTNGP10.phx.gbl> <ssGdnfHUVpJO9wSiRVn-tw@4dv.net> <i3ArBRYnDHA.2624@cpmsftngxa06.phx.gbl>
\par Subject: Re: How to find port resources used by hard drives?
\par Date: Tue, 28 Oct 2003 11:27:00 -0800
\par Lines: 130
\par X-Priority: 3
\par X-MSMail-Priority: Normal
\par X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
\par X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
\par Message-ID: <ezzG4lYnDHA.1408@TK2MSFTNGP11.phx.gbl>
\par Newsgroups: microsoft.public.development.device.drivers
\par NNTP-Posting-Host: 66-126-254-121.ded.pacbell.net 66.126.254.121
\par Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP11.phx.gbl
\par Xref: cpmsftngxa06.phx.gbl microsoft.public.development.device.drivers:33110
\par X-Tomcat-NG: microsoft.public.development.device.drivers
\par
\par That is good news. Thanks Wendy. Do you have any idea what the time frame
\par is for 2000?
\par
\par ""Wendy Shi [MS]"" <wendyshi@online.microsoft.com> wrote in message
\par news:i3ArBRYnDHA.2624@cpmsftngxa06.phx.gbl...
\par > Phil is right. We are backporting ATA_PASS_THROUGH to