Why my 16-bit card does not work under Windows 2000?
Synopsis: It was found that under Windows 2000 several 16-bit cards do not work properly on Desktop machines with an additional CardBus adapter (e.g. SCM SwapBox). For example, at insertion of an ATA card, Windows detects IDE/ATAPI Controller, but does not detect ATA disk device.
Reason: By default Windows 2000 PCMCIA.SYS driver disables usage of PCI interrupts 16-bit cards and forces them to use ISA interrupts only. Unfortunately, on most of Desktop CardBus adapters (e.g. SCM SwapBox) ISA interrupts are not routed to host interrupt controller. As result, card is not working. In our above example with an ATA, Windows will recognize an IDE/ATAPI Controller based on information in Card Information structure (CIS) and will load the ATAPI.SYS driver. The ATAPI driver sends the IDENTIFY_DEVICE command to the IDE channel and waits for interrupt, which never comes.
Solution: Attention! Proposed solution will help ONLY if your 16-bit card supports PCI interrupts. Most of today PC Cards are working in PCI Mode, however some older cards does not. You can use CISINFO for check if particular card supports PCI Interrupts.

To enable PCI Interrupts for 16-bit cards you need add special parameter to PCMCIA.SYS driver. You can either download and execute a small IsaToPci.reg file and reboot the PC or do it manually as following:

  1. Start Regedit.exe
  2. Locate HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Pcmcia\Parameters key
  3. Click Edit -> New -> DWORD Value
  4. Type Value name DisableIsaToPciRouting and keep value of 0
  5. Reboot your PC

By default Windows XP allows usage of PCI interrupts for 16-bit cards and therefore does not exhibit the described problem.

See also: Why my ATA/ATAPI card does not work under Windows 2000/XP, but it works under Windows NT 4.0?