Microsoft KB Archive/140729

{|
 * width="100%"|

Using Windows 95 PCMCIA Card Services

 * }

Q140729

-

The information in this article applies to:


 * Microsoft Win32 Device Driver Kit (DDK) Windows 95

-

SUMMARY
Microsoft does not recommend using Card Services under Windows 95. Most common uses of Card Services, such such as device insertion detection and device configuration, are already handled by the Configuration Manager under Windows 95.

Windows 95 only provides PCMCIA Card Services for VxDs. There are no Card Services bindings provided for 32-bit or 16-bit Windows-based applications, nor is there a real-mode Card Services binding.

MORE INFORMATION
If you feel you must use PCMCIA Card Services under Windows 95, please be aware of the following restrictions:

 Many Card Services functions can only be called during AppyTime. Certain Card Services functions (particulary those that deal with resource allocation) make use of VxD services that can only be called during AppyTime. It is recommended that all calls to Card Services be made during AppyTime. The notification callback for a Card Services client occurs at AppyTime, so it is safe to make CS calls at that time.  The Card Services binding for VxDs under Windows 95 does not match the 32-bit binding defined by the PCMCIA 2.x specification. In Pnp.doc in the Windows 95 DDK, it states that PCCARD_Card_Service "follow the recommended binding in the PCMCIA Standards manual for 0:32 protected- mode clients." It then goes on to list these bindings as:

  AL - Function DX - Handle ESI - Pointer (32-bit offset) CX - ArgLength EBX - ArgPointer (32-bit offset) ---  AX - Status CF - Success/Fail

This actually varies from the PCMCIA 2.x spec, which lists EDX as the handle (versus DX), ECX as the ArgLength (not CX), and EAX as the status (not AX). The bindings defined in Pnp.doc are correct for Windows 95, with the exception of the return status, which is actually returned in EAX, not AX. 