Hello,
We have a requirement for developing an AHCI mode SATA II driver for
Windows XP. We did some investigation on this and was able to find out
that the AHCI only mode is not supported on Windows XP, but there are
some drivers from vendors if you want to operate in native AHCI mode, in
Windows XP.
The latest WDK 6001.18001 has a sample for an ATAport miniport driver
msahci.sys. But this will not build for Windows XP. We couldn’t see any
ATAport support for Windows XP, which seems to be developed keeping AHCI
and new gen SATA controllers in mind.
Is there anyway we can make use of this sample (msahci.sys:
\WINDDK\6001.18001\src\storage\msahci) for Windows XP? We think we have
to use the SCSI port miniport model in Windows XP, but if we can utilize
this sample, it will make our lives easier.
Suggestions will be of great help
Thanks and Regards,
Sreekumar S
>Is there anyway we can make use of this sample (msahci.sys: \WINDDK\6001.18001
\src\storage\msahci) for Windows XP?
Rework the sample as SCSIPORT’s miniport and build it for w2k and XP. All hardware-specific things will remain, IRB will be replaced with SCSI SRB, and so on.
Generally, SCSIPORT has no major architecture differences from ATAPORT, it is very similar.
Having a SCSIPORT’s miniport driving an ATA/SATA controller is normal. It is done so for HighPoint RAID chips available on motherboards since 2001 or earlier.
–
Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com
I agree with this, but I have some issues.
a) How do we map the SCSI commands (CDB) in the SRBs to those in IRB? The SRB cdb will have SCSI-2 commands, if I am guessing correct and these needs to be mapped to ATA and ATAPI commands for the SATA controller.
I guess MS was doing the same while the ATAPI port driver was modeled as a SCSIport miniport in NT4.0. Is my understanding correct? If YES how do we map these requests? I do not have any expertise in these standards.
b) Another issue similar to the above, is with the sense data. Here we may have to convert the SCSI sense command to ATA command and also will have to translate the sense data so that it complies with the SCSI sense data format.
The models are architecturally similar, but there seems to be a number of surprises here and there. Scatter/Gather lists is one of them. Overall the ATAport model seems to be well adapted to this, but I have no option, have to develop on Windows XP. XP AHCI mode drivers are available from only a couple of vendors like Intel, VIA etc. If anybody has any experience in this area, please help me.
Thanks and Regards,
Sreekumar S
>have no option, have to develop on Windows XP. XP AHCI mode drivers are available from only a
If I would do the XP AHCI driver - then I would write a SCSIPORT’s miniport (maybe based on NT4’s ATAPI sample) based on the AHCI spec http://www.intel.com/technology/serialata/ahci.htm
I do not think that much edits to NT4 sample is needed.
–
Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com