PCMCIA Card Support in Windows NT 4.0

PCMCIA cards are supported in Windows NT 4.0, but only with some important restrictions:

Installation of a PCMCIA card requires 5 steps:

  1. Initialize the Registry as described in the Windows NT Installation Instructions. (This will register the card in the PCMCIA device database.)
  2. Shutdown Windows NT.
  3. Insert the PCMCIA card in a PC card socket and reboot.
  4. Verify that Windows NT has detected the card using the PC Card (PCMCIA) applet in the Control Panel.
  5. Start the LayGO device driver (if it was not configured to start automatically) using the net start <driver> command.

Failure to Allocate Hardware Resources

Under some circumstances, the PCMCIA card may be detected by Windows NT and shown by PC Card (PCMCIA) applet, but the operating system nevertheless fails to allocate hardware resources for the card. (If this happens, the LayGO device driver will fail to start with an "insufficient resources" error which will be posted to the system event log.) To check whether this has happened, use the regedt32 utility to examine the Registry key:

HKEY_LOCAL_MACHINE\Hardware\Description\System\PCMCIA PCCARDS

If this key is missing or does not contain a REG_FULL_RESOURCE_DESCRIPTOR value for the PCMCIA card you are trying to install, the card was not assigned any hardware resources and cannot be operated. Microsoft Knowledge Base article Q170084: HOWTO: Add PCMCIA Support to a Windows NT Device Driver explains how to use Registry overrides to manually assign resources to the PCMCIA card. See the Using a Registry Override section below for details on entering override values in the Registry. If you have any questions about using Registry overrides, contact technical support at Advanced Relay Corporation.

Improper IRQ Allocation

Under some circumstances, the PCMCIA card may be detected by Windows NT and allocated resources by the operating system, but the card nevertheless does not work. The problem in these cases is usually the IRQ assigned to the card. There are 2 different situations:

  1. The driver fails to start because of a resource conflict. Windows NT has assigned the card an IRQ which is already in use by another device.
  2. The driver starts normally, but the card doesn't work. Windows NT has assigned an IRQ which the PC BIOS has not enabled for use by a "legacy" ISA bus device.

In either case, some manual configuration is required. A Registry override (explained in the section above) can be used. Also, Microsoft Knowledge Base article Q168303: Masking IRQ's for PCMCIA Devices explains how to use the Registry to set which IRQs can be assigned to PCMCIA cards. Consult your PC manufacturer's documentation on IRQ steering for details on how to enable IRQs for use by "legacy" ISA bus devices. If you have any questions about IRQ configuration, contact technical support at Advanced Relay Corporation.

Using a Registry Override

The Registry entries in laygontx.reg include a service entry for Laygontx1 in addition to that for Laygontx. (This entry is at the very end of the file.) It contains inactive Registry override values for the PCMCIA card (Pcmcia is set to 0). For instance, for the Advanced Relay PCMCIA cards, the entry look like this:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LaygontF1\Parameters]
"Pcmcia"           = dword:00000000
"IoLength"         = dword:00000008
"InterruptNumber"  = dword:00000007
"IoBaseAddress"    = dword:00000300

To use an override, edit this file with a text editor such as notepad. Change the InterruptNumber and IoBaseAddress values to those of the resources you have assigned. (The values are given in hexadecimal notation.) Change the Pcmcia value to 1 to enable the override. Save the file. To write the entries into the Registry, simply double-click the file name in Windows explorer. Do not change the hardware values in any other section of the file.