Hard Disc Drive Head parking through Windows application/drive

Dear Folks,

Our target OS: Windows 10

We could consider, this head parking solution is for a larger quantity of laptops belongs to one particular model of an OEM.

  1. We need to park the HDD head from our custom driver or application programmatically. Please let us know if any method is available to achieve the same.
  2. Turn off the power will park the HDD head. Is that right? Please confirm.
  3. How is the windows power plan automatically turn off the HDD after given inactive time period?
  4. After long analysis, we found using ATA commands like IDLE, Standby could park the HDD head using IOCTL_ATA_PASS_THROUGH. We have developed an application using IOCTL_ATA_PASS_THROUGH and ATA commands. Even the IOCTL is succeeded. But there is no effect in the HDD. It was still running. We passed (IDLE IMMEDIATE, STANDBY IMMEDIATE). What is the exact method to test the HDD head is parked?

Any help or suggestions are greatly appreciated.

Regards,
Vicky

>standby could park the HDD head using

IOCTL_ATA_PASS_THROUGH

We’ve done quite a bit of work in this space over the past 10+ years… Our experience is that in more recent versions of Windows, one of the IOCTL_SCSI_PASS_THROUGH family of requests is better than IOCTL_ATA_PASS_THROUGH or IOCTL_ATA_PASS_THROUGH_DIRECT.

There are many aspects to “I want to park the heads”… and you need to carefully consider what you want to accomplish on the drive. For example, if the idea is to protect a hard drive from a fatal shock during a fall, you need the heads parked as quickly as possible – If you just want to park the heads “normally” you probably want the command queue to be emptied, the disk cache to be flushed, and THEN you want the heads parked.

Also note that support for various types of head park operations varies by vendor… Some drives that don’t SAY they support the UNLOAD feature of IDLE IMMEDIATE in their Identify data (for example) actually DO support it.

Also, bear in mind that unloading the heads takes a *long time*… on the order of 500ms.

As I said, there are many aspects to this problem. I’d recommend you (or your customer) consult with somebody who has experience in this specific space before settling on a design.

Peter
OSR
@OSRDrivers

xxxxx@osr.com wrote:

There are many aspects to “I want to park the heads”… and you need to carefully consider what you want to accomplish on the drive.

Don’t most laptop rotating drives do this in hardware?


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

>Don’t most laptop rotating drives do this in hardware?

Do what in hardware, precisely?

They park the heads by default in certain situations… but there are numerous commands that you can issue to cause the heads to be parked under various situations. As I said:

This is all under your control.

Peter
OSR
@OSRDrivers

Dear Folks,

Thanks for your interest in this topic.

@ Peter Viscarola,

>> if the idea is to protect a hard drive from a fatal shock during a fall
Yes. This Solution is to protect a hard drive from a fatal shock during a fall.

>> but there are numerous commands that you can issue to cause the heads to be parked under various situations.
Please share the possible commands and ways to park the HDD head in windows. (may be with examples of different scenario’s). It will be very useful for us to finalize the design.

>> one of the IOCTL_SCSI_PASS_THROUGH family of requests is better than IOCTL_ATA_PASS_THROUGH or IOCTL_ATA_PASS_THROUGH_DIRECT.
Hopefully ataport.sys/scsiport.sys port drivers are exposing those IOCTL’s? Is it right? If so, how to get the(what is the) Device interface GUID’s of the ataport.sys/scsiport.sys?
We would like to invoke IOCTL_SCSI_PASS_THROUGH or IOCTL_ATA_PASS_THROUGH from our KMDF driver using WdfFdoQueryForInterface(), WdfIoTargetSendIoctlSynchronously() calls. Is that possible ?

Regards,
Vicky

With all due respect, there CAN be a lot to this. So, this is something that we would be happy to do as a consulting assignment, and if you’re interested in that contact me directly off-line. This is not something we can/would try to do on a forum.

Sorry… but I’m trying to do responsible engineering here and not provide simple answers to potentially complex questions/requirements,

Peter
OSR
@OSRDrivers

I used to have a Dell laptop with an accelerometer which was supposed to park heads if the laptop got dropped. So such designs has been implemented by the OEMs. Although with SSD it’s not so important anymore.

Yes indeed. And we have implemented some of them. MANY years back, even.

Peter
OSR
@OSRDrivers