I`m working with hard drives and there`s some problem.
1. For example where can I find P-LIST (Primary) and G-LIST (Ground) - the global tables of bad-sectors. Is it in HPA or DCO? Can I theoretically gain access to this tables with my own programm? And how? And in what format are this tables?
2. Is there any open source utilities for Windows which can find and modify HPA & DCO? I try`d to write my own utility which uses DeviceIoControl and send ATA commands such as SET_MAX_ADDRESS to the drive. But there`s no result. If somebody`s know how it works PLEASE help me!
3. As I know this areas are only included in IDE/ATA specification, so here`s another question - what about SCSI? I think there must be analog areas in there too. Am I wrong?
4. I`m writing an utility for making a bit image of drive (partitions) so I need to copy as much information as possible (on ATA drives there could be HPA and DCO). Is there another "underwater rocks"?
HDAT2 may be something to look at
as I know hdat2 isn`t an open source utilitie… I want to understand how exactly it works..
When I wrote BXDR in 2002 I found that Windows got in the way and success under Windows was a bit hit and miss - I finally resorted to a DOS based program and just poked values straight into the IDE controller register.
All the info to understand how it works is in the ATA spec.