Help - Search - Members - Calendar
Full Version: Universal ATA driver for Windows 2000/XP(SATA, SATA-2 supported)
MSFN Forums > Unattended Windows Discussion & Support > Device Drivers

   
Google Internet Forums Unattended CD/DVD Guide
MOONLIGHT SONATA
Universal ATA driver for Windows NT3.51/NT4/2000/XP

---by Alter aka Alexander A. Telyatnikov
---Last updated on 01.04.2007.

Overview(as explained in Alter.Org.UA Official webpage)
...It is worth installing UniATA if vendor of your new motherboard do not want to supply you with drivers for your old OS. Or vice versa, you have old motherboard and want to install new Windows with it. Of course, it is possible to use standard (generic) drivers those most probably supports this hardware. But what about performance ? You will have PIO mode with 0.5 - 3 Mb/sec transfer rate. UniATA shall use DMA or UltraDMA and have up to 10 times better performance. There is still one common problem with modern hard driver of more than 128 Gb capacity (also known as LBA-48 or BigLba). Old OSes do not support such drives at all, new ones require latest Service Packs. UniATA has built-in support for large drives....UniATA supports numerous IDE controllers and in addition is capable of driving all standard (onboard primary/secondary) controllers.

Features
  • DMA/UDMA support (up to ATA-133) on known and generic DMA on unknown controllers
  • LBA48 (large drives greater than 128Gb) support
  • SerialATA support (SATA, SATA-2)
  • NT3.51 (i486+), NT4, 2000, XP, 2003 support (may be 2005 - not tested)
  • support of contiguous set of modes UDMA0-UDMA6 (ATA-16/25/33/44/66/100/133)
  • Support of numerous IDE controllers and generic ATA/ATAPI
  • no reinstall required when migrating to different IDE controller or motherboard.
  • internal command queueing and optimized execution order of read/write requests
  • user-mode device management utility atactl.exe. You can change data transfer mode (PIO/DMA/UDMA) on the fly.
  • tuning Read/Write cache, transfer modes and many other things via Registry settings
Latest Release
To get latest stable version - v0.37 Click Here

Now, what i want is somehow integrate this SATA driver into Windows XP Service Pack 2 installation source so that this driver is available during txtmode stage. The driver.inf is not allowing me to adhere to the integration guide available here, because of my limited experience with such a complex working INF. Can someone provide me any clue regarding this? unsure.gif

Thanks.
kickarse
That's pretty cool!

But I wonder how we'd get it to work with MassStorage though?
Nois3
This is great, but I don't know if this will work. Mass storage drivers are assigned by PNP Device ID's from what I understand. I think you'd have to modify the inf file to include the device id of your controller for this to work.
MOONLIGHT SONATA
Nois3 - Thanks for your support.

What i find in the extracted RAR archive BusMaster_v37.rar are 2 different INFs for Windows XP. uata_xp.inf (for RAID) and uata_xph.inf (for IDE). Both the INFs support huge number of controllers.
One example of what i'm finding in uata_xp.inf is like:
%PCI\VEN_1078&DEV_0102.DeviceDesc%=uniata_Inst, PCI\VEN_1078&DEV_0102
Where 1078 is 4-digit hexedecimal VendorID of controller and 0102 is 4-digit hexedecimal DeviceID of controller.
The archive also contains a format for txtsetup.oem with every section described in detail.
However, my question is two-fold:
1. The INF as i found in the archive is best suited for "devcon install" type command-line processing, and not for integration as early as txtmode setup.
2. Can uniata.sys be used to replace pciide.sys(the latter in-built into Windows XP source)?

Looks like not all experts of massstorage driver integration has looked into this aspect.
Alter
I'm not sure if you can replace PCIIDE.SYS with UNIATA, since PCIIDE (and PCIIDEX) is used by other ATA drivers like port driver. It does common work for ATA controllers and leave controller-specific staff for vendor's drivers.
To avoid conflicts I tried to disable both these drivers.

UNIATA can be used instead of other drivers of onboard dual-channel IDE controllers in most cases.
I know only about some problems with ICH4, but there was no possibility to debug driver with this controller.

Another thing, that I was proposed is to add the following registry values:
CODE
HKLM, "system\currentcontrolset\control\CriticalDeviceDatabase\pci#CC_0101", "Service", %REG_SZ%, "uniata"
HKLM, "system\currentcontrolset\control\CriticalDeviceDatabase\primary_ide_channel", "Service", %REG_SZ%, "uniata"
HKLM, "system\currentcontrolset\control\CriticalDeviceDatabase\secondary_ide_channel", "Service", %REG_SZ%, "uniata"

this guarantees, that UNIATA shall be loaded by PNP manager, but I could not integrate these settings into INF file.

What about 2 INFs for XP:
I've made them because it doesn't matter for driver, how the controller is exposed to system in device manager. Because actually system requires storage devices to be representred as SCSI. There is some difference for PNP manager only. In some cases it likes MassStorage/SCSI INF, in other - IDE. I don't know why.
I'd be thankful for any help on it.
kickarse
Is there a list of Hardware ID's that this INF supports so I can import that into my sysprep ini file?
Alter
QUOTE (kickarse @ May 25 2007, 06:54 PM) *
Is there a list of Hardware ID's that this INF supports so I can import that into my sysprep ini file?

You can find this list inside any of INFs.
If sysprep requires some specific format of this list - tell me and I'll add this format generator.
kickarse
Sysprep has a section to add where the mass storage driver lives according to their ID... So one of my lines is

PCI\VEN_8086&DEV_27DF=C:\D_I\ich7ide.inf

I'll check through the INF though...
ccl0
...any recent update to this?

ccl0
looks like a new beta was released not too long ago

Version 0.39g link


ccl0
new version out 0.39j link


# Added support for several new SATA/PATA controllers, e.g. Marvell, AMD, ATI, nVidia, VIA.
# Fixed bug with BSOD on any SATA controller.
# Fixed some bugs in VIA SATA code.
# Continued AHCI support development smile.gif
# Fixed compatibility issue with DDK 2003
Google Internet Forums Unattended CD/DVD Guide
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.