Jump to content

Universal ATA driver for Windows 2000/XP(SATA, SATA-2 supported)


MOONLIGHT SONATA

Recommended Posts

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:

Thanks.

Link to comment
Share on other sites


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.

Link to comment
Share on other sites

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.

Edited by MOONLIGHT SONATA
Link to comment
Share on other sites

  • 3 weeks later...

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:

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.

Link to comment
Share on other sites

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.

Edited by Alter
Link to comment
Share on other sites

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...

Link to comment
Share on other sites

  • 11 months later...
  • 2 months later...
  • 5 weeks later...

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 :)

# Fixed compatibility issue with DDK 2003

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...