Legacy PCMCIA Driver Support (Windows Embedded CE 6.0)

1/6/2010

The PC Card host stack in Windows CE 5.0 supports PCMCIA drivers developed prior to Windows CE 5.0. The PCMCIA legacy compatibility layer provides support for PCMCIA card services and converts the PCMCIA card service bus-agnostic interface that is provided by the PC Card bus driver.

Note

A legacy PCMCIA client driver is one that was created prior to Windows CE 5.0 that supports only 16-bit PCMCIA cards. A PC Card driver is one that was created in Windows CE 5.0 that supports both 16 and 32-bit PCMCIA cards and was written using the bus-agnostic driver model. For more information, see PC Card Bus-Agnostic Client Drivers.

Existing PCMCIA client drivers will continue to function correctly without modifications. However, Microsoft recommends that you convert legacy PCMCIA drivers to bus-agnostic drivers. For more information, see PC Card Bus Driver.

Legacy PCMCIA cards that do not support the configuration status register (CSR) in their attribute memory can potentially cause a device to quit responding. This can occur when the PC Card reader shares an interrupt with another device or when the sockets of the PC card reader share the same interrupt. In this situation, you should rewrite your driver to use the Windows CE 5.0 driver architecture using the PC CARD template. In the Windows CE 5.0 architecture, a driver is expected to provide its own installable interrupt service handler (ISR).

PC Card client drivers are stream interface drivers that use the PC Card card services library to interact with their PC Card devices. Because the PC Card card services library handles all the details of moving data across the PCMCIA bus, the stream interface drivers for PC Card devices are free to work on device-specific tasks. PC Card client drivers can also interact with the PC Card socket service library, if necessary.

Most PC Card socket functions have a parameter that represents a socket and function pair. A socket and function pair is a combination of one particular PC Card socket and one particular function of a PC Card. Socket and function pairs support multifunction PC Cards and devices with more than one PC Card socket. Your drivers for multifunction cards should register one device file name for each function. Any drivers that you develop for PC Cards should also work with any socket index, because different devices have different numbers of PC Card sockets.

If you develop a generic PC Card driver, which is one that can drive an entire class of PC Cards adhering to a specified operating standard, you need an additional entry point in the dynamic-link library (DLL) for a detection function. The Device Manager uses the detection function when a user inserts an unknown PC Card with no Plug and Play identifier. This function must conform to the PFN_DETECT_ENTRY prototype declared in %_WINCEROOT%\Public\Common\DDK\Inc\DevLoad.h.

Note

User-level applications cannot access the PC Card card services library directly. An application that attempts to call the LoadLibrary function encounters errors because of the way the Device Manager manages the PC Card card services library. For applications that must access these functions, use a small, intermediate device driver that provides wrappers around the functions in the library. For more information, see LoadLibrary.

See Also

Concepts

PC Card Development Concepts
PC Card Bus Driver
Converting a Legacy PCMCIA Driver to a Bus-Agnostic Driver

Other Resources

PC Card Drivers