Architecture for implementing PCMCIA card services under the windows operating system in enhanced mode
First Claim
1. A computer implemented method for providing PCMCIA Card Services to a Windows application running on the Windows operating system or a DOS application running in a DOS virtual machine in said Windows operating system, said method comprising the steps of:
- spawning a Card Services Background Processing application, said Card Services Background Processing application comprising a standard Windows application;
initializing a Card Services Dynamic Link Library, said Card Services Dynamic Link Library comprising a plurality of software functions corresponding to a plurality of Card Services functions such that each software function performs the requirements of the corresponding Card Services function;
calling a software function in a Card Services Dynamic Link Library from said Windows application if said Windows application needs Card Services;
posting a message containing a set of function parameters to said Card Services Background Processing application from said software function if said software function requires asynchronous processing;
calling a Card Services virtual device driver from said software function in said Card Services Dynamic Link Library, said Card Services virtual device driver performing Ring 0 operating system services for said Card Services Dynamic Link Library;
hooking a software interrupt such that said Card Services virtual device driver obtains control when said DOS application executes a software interrupt instruction; and
calling a software function in said Card Services Dynamic Link Library from said Card Services virtual device driver when said Card Services virtual device driver obtains control if said DOS application requests Card Services by executing said interrupt instruction.
0 Assignments
0 Petitions
Accused Products
Abstract
An implementation of PCMCIA Card Services for the Windows operating system in enhanced mode. A Card Services dynamic linked library (DLL) was written which contains a library of C functions which perform the Card Services functions. The Card Services DLL maintains a Card Services database of the Card Services resources available such that the Card Services DLL can share the Card Services resources among clients of Card Services. Windows applications can call the functions in the Card Services DLL directly to access Card Services functions. The Card Services DLL posts messages to a Card Services Windows application to request a Card Services function be performed with background processing. The Card Services Windows application processes the Card Services function at a later time. A Card Services virtual device driver (V×D) provides system functions to the Card Services DLL. The Card Services V×D hooks the INT 1A software interrupt such that Card Services requests which use the register based binding in the PCMCIA Card Services specification are intercepted and directed to the Card Services DLL. The Card Services V×D also traps interrupts caused by PCMCIA socket adapters and calls the appropriate interrupt handling routine in the Card Services DLL.
174 Citations
25 Claims
-
1. A computer implemented method for providing PCMCIA Card Services to a Windows application running on the Windows operating system or a DOS application running in a DOS virtual machine in said Windows operating system, said method comprising the steps of:
-
spawning a Card Services Background Processing application, said Card Services Background Processing application comprising a standard Windows application; initializing a Card Services Dynamic Link Library, said Card Services Dynamic Link Library comprising a plurality of software functions corresponding to a plurality of Card Services functions such that each software function performs the requirements of the corresponding Card Services function; calling a software function in a Card Services Dynamic Link Library from said Windows application if said Windows application needs Card Services; posting a message containing a set of function parameters to said Card Services Background Processing application from said software function if said software function requires asynchronous processing; calling a Card Services virtual device driver from said software function in said Card Services Dynamic Link Library, said Card Services virtual device driver performing Ring 0 operating system services for said Card Services Dynamic Link Library; hooking a software interrupt such that said Card Services virtual device driver obtains control when said DOS application executes a software interrupt instruction; and calling a software function in said Card Services Dynamic Link Library from said Card Services virtual device driver when said Card Services virtual device driver obtains control if said DOS application requests Card Services by executing said interrupt instruction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In an IBM PC-compatible computer system, said IBM PC-compatible computer system having a PCMCIA socket adapter, said IBM PC-compatible computer system running a Windows operating system, an apparatus that provides PCMCIA Card Services to a Windows application running on the Windows operating system or a DOS application running in a DOS virtual machine in said Windows operating system, said apparatus comprising the elements of:
-
background processing means, said background processing means comprising a standard Windows application, said background processing means having a receive message queue for receiving messages containing a set of Card Services function parameters, said background processing means processing said set of Card Services function parameters; Card Services function means, said Card Services function means comprising a dynamic link library with a plurality of software functions, said plurality of software functions corresponding to a plurality of Card Services functions such that each software function performs the requirements of the corresponding Card Services function; system service means, said system service means comprising a Card Services virtual device driver running on said IBM PC-compatible computer system with an interface accessible by said Card Services function means, said Card Services virtual device driver providing Ring 0 operating system services to said Card Services function means; software interrupt hooking means, said software interrupt hooking means obtaining control for said DOS application Card Services means when a DOS Card Services client application executes a software interrupt instruction; and Card Services function calling means, said Card Services function calling means calling a software function in said Card Services function means from said DOS application Card Services means when said software interrupt hooking means obtains control after said software interrupt is executed by said DOS Card Services client application. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer implemented method for providing PCMCIA Card Services to Windows application running on the Windows operating system or a DOS application running in a DOS virtual machine in said WindOws Operating system, said method comprising the steps of:
-
calling a software function in a Card Services Dynamic Link Library from said Windows application, said software function corresponding to a Card Services function such that said software function performs the requirements of the corresponding Card Services function; and posting a message to a Card Services Background Processing application from said software function in said Card Services Dynamic Link Library when a Card Services function must be performed asynchronously, said Card Services Background Processing application comprising a standard Windows application; and calling a Card Services virtual device driver from said software function in said Card Services Dynamic Link Library when a Card Services function needs Ring 0 operating system services; hooking a software interrupt such that a DOS client handling routine in said Card Services virtual device driver obtains control when said DOS application executes a software interrupt instruction; and calling a Card Services function in said Card Services Dynamic Link Library from said DOS client handling routine in said Card Services virtual device driver when said Card Services virtual device driver obtains control after said software interrupt instruction is executed by said DOS Card Services client application. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. In a computer system running a Windows enhanced mode operating system, a computer implemented method for providing PCMCIA Card Services to Windows Card Services clients and to at least one DOS Card Services client application running in a DOS virtual machine such that said Card Services does not use real mode memory below a 640K boundary, said Card Services client running in a DOS virtual machine accessing Card Services using a software interrupt, said method comprising the steps of:
-
creating a Card Services Dynamic Link Library, said Card Services Dynamic Link Library comprising a plurality of software function that correspond to a plurality of Card Services functions, said Card Services Dynamic Link Library located in said system virtual machine;
said Card Services Dynamic Link Library accessible to said Windows Card Services clients;providing a Card Services virtual device driver, said Card Services virtual device driver performing Ring 0 operating system services for said Card Services Dynamic Link Library; hooking said software interrupt with said Card Services virtual device driver such that said Card Services virtual device driver obtains control when said DOS Card Services client application executes a software interrupt instruction; and calling a Card Services function in said Card Services Dynamic Link Library from said Card Services virtual device driver when said Card Services virtual device driver obtains control after said software interrupt instruction is executed by said DOS Card Services client application; and posting a message containing said set of function parameters to a Card Services Background Processing application from said software function if said software function requires asynchronous processing.
-
-
24. A computer implemented method for providing a Card Services function to a Windows Card Services client and to at least one DOS Card Services client application running in a DOS virtual machine on the Windows operating system, said method comprising the steps of:
-
loading a set of registers with a set of Card Services function parameters from within said DOS Card Services client application; executing a software interrupt instruction from said DOS Card Services client application to request said Card Services function; hooking said software interrupt with a Card Services virtual device driver such that said Card Services virtual device driver obtains control when said DOS Card Services client application executes said software interrupt instruction; and translating said set of Card Services function parameters within said Card Services virtual device driver into a set of protected mode Card Services function parameters; suspending execution of said DOS virtual machine; calling a software function in a Card Services Dynamic Link Library, said step of calling a software function providing said set of protected mode Card Services function parameters to said software function, said software function returning a set of protected mode return codes; posting a message containing said set of function parameters to a Card Services Background Processing application from said software function if said software function requires asynchronous processing; translating said set of protected mode return codes into a set of real mode return codes for said DOS Card Services client application; unsuspending execution of said DOS virtual machine; and returning from said Card Services virtual device driver to said DOS Card Services client application. - View Dependent Claims (25)
-
Specification