According to this M$ article: Disks and File Systems: The Basics http://www.microsoft.com/technet/archive/win95/rk20_dsk.mspx - This 9x/ME UniATA port is theoretically possible with a minor re-write because win9x contains somewhat NT-compatible API to call scsiport.sys ( in win9x it is named scsiport.pdr ) - it do a lot of generic abstract disk-related work. Intel's IntelATA driver (IAA 2.3 - http://www.intel.com/support/chipsets/iaa/ ) is made such way, if you haven't already know (intelata.sys is used for NT4, intelata.mpd for Win9x - these drivers/files accessed scsiport driver the same way). A lot of code in UniATA was taken from linux kernel ide drivers. Main difference (In UniATA) that in NT-version it supports SMP machines and has A LOT OF SMP code and related i/o synchronization. For different Windows NT-family OS-es (NT 3.51, NT 4.0, W2K, XP) some tweaks and OS detection routines are present to make driver universal. This driver also performs some operations with virtual/physical address space. Win9x system does not need and doesn't support all that stuff above. So it must be accurately removed... But doing it is not an easy stuff...