> "richk" <firstname.lastname@example.org> wrote in message
>> I need to get some kind of PC card that will look like a real IDE
>> controller and use the same addresses as either the primary or secondary
>> channel on a PC with a built-in ide controller. I tried to use a PC card
>> that was an eSATA controller connected to a SATA->PATA bridge, but a device
>> connected to the bridge showed up in Device Manager as a SCSI disk.
> The controller lied to Windows. My now long gone Win98 computer had a
> controller with 4 IDE interfaces, which all appeared as SCSI, but
> nevertheless, the system worked fine.
> For some reason, the controller must appear as a SCSI device, but it
> converts SCSI commands to IDE commands.
"Windows Driver Kit: Storage Devices SCSI Port Driver"
Drivers using SCSI emulation, are favored by hardware companies as an
easy way to write the drivers. It is either do that, or write your
own driver from the ground up. SCSI emulation provides a framework
for driver design. One side effect is, a certain degree of information
hiding (perhaps, no support for SMART).
If a piece of hardware had a standard set of registers at the
appropriate offset to the BAR, the built-in driver in Windows
could work with it. (The Plug and Play info still has to match
something in the appropriate INF file, so this would only
work seamlessly, if I made my chip look exactly like
some other company's chip. If I edited the file and added
my own VEN and DEV, then it might work with no further fiddling.)
Example on page 11 here, for ICH5.
If I wanted to design an IDE chip, one that plugs into
something like the PCI bus, I'd design it as described in
the "Native Sub-Mode". And then, on OSes from Win2K onwards,
I might succeed in getting it to "just work". And the word
SCSI would not appear in Device Manager, for my chip.
As an example, my current motherboard has a Jmicron JMB368 with
one IDE connector. The driver that automatically installed
for that (I don't think I installed it), uses PCIIDE.sys
and the PCIIDEX.sys library file. If I locate the INF file which
mentions those files, that might give me an idea of what chips
it supports (mshdc.inf).
(PCI Express in many respects, behaves like PCI.)
Looking in that "mshdc.inf" file, my 368 is not mentioned. I suspect
a match on this line, is how the device got recognized and installed.
"%PCI\CC_0101.DeviceDesc% = pciide_Inst,,PCI\CC_0101 ;
Device ID for generic Dual PCI IDE (UNKNOWN_PCI_IDE)"
So there does seem to be a way to get new, unknown hardware
to be supported.