Installing legacy drivers on Win2k

I am very sure that this has been addressed in the news groups, but right
now DejaNews is down until 22 May so I cannot use it to scan the archives to
find discussions on how to do this, if it can even be done.

Right now we do not want to make any code changes to an existing NT 4 device
driver, just permit it to be installed when 2K detects new hardware. I
believe this can be done by using an INF file that defines the Device/Vendor
information for our FibreChannel card. However, since our device uses the
QLogic ISP 2100 chip, I will also need to disable the QL2100 from being
installed. Our driver is not PnP, since it was built for NT4, and of course
scans the PCI bus and uses HalAssignSlotResources.

Thus far I have learned that the Hardware wizard does not give you the
chance to look for additional installable devices; e.g. those dastardly
“unsigned” device drivers we all write.

Thanks for any help you can provide.

Well, DejaNews is back up … but they just as well not have bothered. Their
“improvements” are somewhere below whale shit. But I’m not here to criticize
DejaNews.

During the last 3 work days I have pretty well learned that running an NT 4,
PCI driver on Win2K is not impossible. You simply have to “creatively
interpret” obsolete function call documentation for the now defunct function
calls.

When making the following call to HalAssignSlotResources, I received an
error status of invalid parameter 3 (0xC00000F1).

status = HalAssignSlotResources(registryPath,
NULL, //
&nameString, /* optional */
driver,
NULL,
// device Object /* optional */
PCIBus,
busNumber,
index.u.AsULONG,
&resources);

Chasing this down through disassembly, the fault is actually being returned
from the call to IopAllocateResources, and two of the parameters passed to
that function are the DriverObject and the null DeviceObject pointer
parameters I passed to HASR. Once I set the null parameter to a valid device
object, HASR stopped having heartburn and returned STATUS_SUCCESS.

The net result is that the driver loads, responds to a CreateFile, and
appears to be functional.