CardWare with AVM Fritz! Card and fpcmbase driver

The fpcmbase.sys driver (Driver for AVM ISDN-Controller Fritz!Card PCMCIA, File version 4.4, Copyright AVM GmbH 2000) do not load with an error 87 "Invalid parameter" written to the System Events Log.

The reason of this behavior is following: The original Microsoft PCMCIA.SYS driver usually allocates the I/O range 1 byte longer as requested. However writing number of allocated ports to the registry Microsoft decreases number of allocated ports by 1. Therefore for AVM Fritz! card the Microsoft will allocate 9 I/O (instead of requested 8), but will write to the registry 8. CardWare allocates requested number of I/O ports properly (8 ports), however since many driver rely on the fact that registry value should be one less as allocated by default CardWare writes to the registry 1 less (i.e. 7). Unfortunately AVM fpcmbase.sys driver checks the registry value and exits if the number of allocated I/O ports is not exactly 8.

The work-around is following:

  1. Open REGEDT32.EXE and go to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Pcmcia\Database\AVM\ISDN A
  2. Add to this key following value: IoLength REG_DWORD 0x9
  3. Go to key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\fpcmbase1\Parameters
  4. Change value of IOLength from 8 to 0
  5. Reconfigure the card. The driver will now start properly

The work-around above simply forces CardWare to allocate I/O range of 9 bytes (as Microsoft PCMCIA.SYS driver will do).

Starting from version 6.00.033 CardWare for Windows NT is able to unload fpcmbase.sys driver on card removal. Therefore AVM Fritz! card is fully hot swappable under CardWare.