Accessing legacy ISA device in Windows 10

I need help or hints in how to get started with creating a Windows 10 driver for an ISA device. I have basic knowledge about Windows driver development (I have written a UMDF driver).

My target system has a motherboard with an INTEGRATED ISA slot. There seems to be a PCI to ISA bridge controller on the mainboard which connects ISA<->PCI (the mainboard is a MSI MS-98A9).

What are the steps to create a driver which is able to access I/Os of an ISA device? The ISA device was developed by our company years ago and now we want to try to port it to newer hardware and Windows.

I appreciate any help about this topic.

Short Answer: You write a KMDF driver, just like for any device. You use a LogConfig section in your INF to specify your hardware resources. You’ll be called in your EvtDevicePrepareHardware with your resources, just like for any device.

I’ve done this, multiple times, and it works great.

Feel free to ask more questions if you need more information.

Peter
OSR
@OSRDrivers

Thanks, Peter.

Right now I am still a litte confused because of the PCI<->ISA bridge. What
type of device class will my ISA card be? How should the INF file look
like? I found this article which sounds interesting to me:

https://docs.microsoft.com/en-us/windows-hardware/drivers/multifunction/supporting-multifunction-devices-on-other-buses

Can I use it somehow?

Ignore the PCI to ISA bridge. It?s not transparent to you and not relevant. For all intents and purposes to Windows as a whole your device is a PCI device. Same thing if your device was on the LPC bus.

In terms of device class… use whatever you like. I prefer to put devices like this in their own custom device setup class… cuz the setup class in the INF only determines where the device shows up in Device Manager, right?

Dont overthink the problem. Stick the resources in your INF and write an ordinary KMDF driver for it.

Peter
OSR
@OSRDrivers