This document describes the architecture of PCMCIA in Windows 95 and its interaction with the Plug and Play environment. It addresses the three major aspects of PCMCIA: PC cards, device drivers for those cards, and PCMCIA system software. The Plug and Play framework enables tighter integration and better support of the dynamic nature of the PCMCIA interface. In this framework, a PCMCIA adapter will be controlled by the PCMCIA bus enumerator (PCCARD.386). PCCARD incorporates the Card Services functions as well as the PCMCIA bus enumeration and configuration functions.
The primary goal of PCMCIA in Windows 95 is to configure PC cards so that any Plug and Play device driver can be used to control the device, without any special provisions for PCMCIA. Another goal of the system is to support PCMCIA 2.x Card Services Clients and Drivers and to provide an environment for 32-bit protected mode Card Services clients, which may be required to support PC cards and their drivers.
The tighter integration of PCMCIA with the operating system eliminates the need for the guesswork which Card Services otherwise uses to find which resources are available in a given system. The PCMCIA enumerator also enables automatic device installation via the Windows Device Installer. Since configuration management is actually done by Configuration Manager, resources are allocated and reclaimed dynamically. This enables the easy addition of static devices and support for new scenarios such as hot or warm docking. The PCMCIA bus enumerator uses the information tuples described in this document to identify the card, load the correct device driver, and indicate all the possible configurations to Configuration Manager. Configuration Manager dynamically assigns a valid configuration based on this information.
To support true Plug and Play functionality, PC cards must fully support the identification and configuration tuples described in this document.
Device drivers must be modified to support the Windows 95 dynamic loading mechanism and the Plug and Play configuration functions. Since Windows 95 Plug and Play seamlessly configures devices in the system, it enables card vendors to write a single driver for the ISA, EISA, PCI and PCMCIA implementations of a given I/O card. Protected mode Card Services clients will be supported in Windows 95 as well, but will not have the same level of flexibility as Windows 95 Plug and Play drivers. This document describes three different types of PC card drivers which will be supported in Windows 95.
The following diagram illustrates how Card Services is integrated into the Windows 95 Plug and Play framework. Card Services is incorporated with the PCMCIA bus enumerator in the PCCARD module. This module interacts with Configuration Manager and the registry when a card is inserted or removed.