Intercepting / Modifying ATA commands (verification)

Sorry for the newbie Q. I would like to intercept ATA commands (and possibly modify them) on the way to the drive on Windows 7. I did find this 2009 thread ( http://www.osronline.com/showthread.cfm?link=168730 ). I would like to validate the following conclusions I drew from the posts: 1) You cannot insert a filter between ATAPort and the appropriate miniport ( e.g. msahci.sys ). 2) As a result, only the following options are available: a) Replace the miniport driver with our own. b) Earlier in the stack modify the CDBs in such a way that the translation will place them in the appropriate locations in the ATA command. c) Find a different solution. If the above is true, is there documentation that tells how the CDB to TFR translation is done and for which commands? Joe Marley

>b) Earlier in the stack modify the CDBs in such a way that the translation will place them in the >appropriate locations in the ATA command.
Insert a disk lower filter and modify a SCSI commands before ATAPort. You need to match SCSI to ATA command. You need to figure by yourself which a SCSI command translated to a particular ATA command. Some tools may help you. For example, busTrace would show to you how a request processed from disk.sys to a miniport driver.

Igor Sharovar

Ah! Therein lies the rub! ATAPORT/MSAHCI and friends will do things THEIR way, and each vendor with a port driver (Intel, NVIDIA) will do things their OWN way. It?s a big mess and no easy thing to fix in a manner that’ll work across all possible drivers.

Peter
OSR