System for reducing conflicts among dynamic link library modules by aliasing modules
First Claim
1. In a computer system of the type including a processor, a data storage device, and a memory for storing a plurality of modules defining sets of machine language instructions executable by said processor,a first module stored in said memory under a first name,a second module stored in said data storage device under a second name identical to said first name, but said second module being a different version than said first module,a module-load routine stored in said memory and executable by said processor to load a requested module from said data storage device into said memory,said module-load routine receiving a request to load said second module from said data storage device into said memory,a module management system comprising:
- an alias-load routine stored in said memory and executable by said processor, said alias-load routine associating an alias file name with said second module and passing said alias file name to said module-load routine, whereby said module-load routine loads a copy of said second module into said memory under said alias file name.
3 Assignments
0 Petitions
Accused Products
Abstract
A system for managing DLL modules and providing administrators of Windows based PCs with more control over Windows modules. The invention beneficially patches standard Windows API call logic with code that serves to (i) more accurately load the correct DLLs associated with specified applications, (ii) enable multiple DLLs of the same name to be loaded simultaneously where otherwise precluded (such as in a 16-bit Windows environment) and (iii) efficiently track module use and the relationships between modules at run-time.
104 Citations
21 Claims
-
1. In a computer system of the type including a processor, a data storage device, and a memory for storing a plurality of modules defining sets of machine language instructions executable by said processor,
a first module stored in said memory under a first name, a second module stored in said data storage device under a second name identical to said first name, but said second module being a different version than said first module, a module-load routine stored in said memory and executable by said processor to load a requested module from said data storage device into said memory, said module-load routine receiving a request to load said second module from said data storage device into said memory, a module management system comprising: an alias-load routine stored in said memory and executable by said processor, said alias-load routine associating an alias file name with said second module and passing said alias file name to said module-load routine, whereby said module-load routine loads a copy of said second module into said memory under said alias file name. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. In a computer system of the type including a processor, a data storage device, and a memory for storing a plurality of modules defining sets of machine language instructions executable by said processor,
a first module stored in said memory under a first name, a second module stored in said data storage device under a second name identical to said first name, but said second module being a different version than said first module, a module-load routine stored in said memory and executable by said processor to load a requested module from said data storage device into said memory, said module-load routine receiving a request to load said second module from said data storage device into said memory, a free-module routine stored in said memory and executable by said processor to free from said memory a specified module, a module management system comprising: -
an alias-load routine stored in said memory and executable by said processor, said alias-load routine associating an alias file name with said second module and passing said alias file name to said module-load routine, whereby said module-load routine loads a copy of said second module into said memory under said alias file name; a database file containing a record of alias module loads, said database file containing information defining an association between said alias file name and said second module name; and a remove-mapping routine stored in said memory and executable by said processor, said remove-mapping routine removing said association from said database file responsive to said free-module routine freeing said copy of said alias file from said memory.
-
-
10. In a computer system of the type including a processor, a data storage device, and a memory for storing a plurality of modules defining sets of machine language instructions executable by said processor,
a first module stored in said memory under a first name, a second module stored in said data storage device under a second name identical to said first name, but said second module being a different version than said first module, a module-load routine stored in said memory and executable by said processor to load a requested module from said data storage device into said memory, said module-load routine receiving a request to load said second module from said data storage device into said memory. a get-module-filename routine stored in said memory and executable by said processor to provide a name of a module associated with a specified module handle, a module management system comprising: -
an alias-load routine stored in said memory and executable by said processor, said alias-load routine associating an alias file name with said second module and passing said alias file name to said module-load routine, whereby said module-load routine loads a copy of said second module into said memory under said alias file name; said alias-load routine associating said alias file name with said second module by a process comprising making an alias file copy of said second module on said data storage device under said alias file name, whereby said module-load routine loads said alias file copy into said memory; and a name-routine stored in said memory and executable by said processor to provide said get-module-filename routine with said second module name when said specified module handle corresponds to said alias file copy.
-
-
11. In a computer system of the type including a processor, a data storage device, and a memory for storing a plurality of modules defining sets of machine language instructions executable by said processor,
a first module stored in said memory under a first name, a second module stored in said data storage device under a second name identical to said first name, but said second module being a different version than said first module, a module-load routine stored in said memory and executable by said processor to load a requested module from said data storage device into said memory, said module-load routine receiving a request to load said second module from said data storage device into said memory, a get-module-handle routine stored in said memory and executable by said processor to provide a handle of a module associated with a specified module name, a module management system comprising: -
an alias-load routine stored in said memory and executable by said processor, said alias-load routine associating an alias file name with said second module and passing said alias file name to said module-load routine, whereby said module-load routine loads a copy of said second module into said memory under said alias file name; said alias-load routine associating said alias file name with said second module by a process comprising making an alias file copy of said second module on said data storage device under said alias file name, whereby said module-load routine loads said alias file copy into said memory; and a handle-routine stored in said memory and executable by said processor to provide said get-module-handle routine with a pointer to said alias file copy when said specified module name corresponds to said alias file copy and said alias file copy is the same version as said specified module.
-
-
12. In a computer system of the type including a processor, a memory for holding code modules associated with a plurality of applications, and an operating system including a module load routine for loading a module into said memory,
said operating system running a first application associated with a first module, said first module having a first module name and being loaded into said memory, said operating system loading a second module associated with a second application, said second module having a second module name identical to said first module name but said second module being a different version than said first module, a method for managing multiple modules comprising, in combination: -
associating said second module with an alias file name; and providing said alias file name to said module load routine, whereby said module load routine loads an alias copy of said second module into said memory under said alias file name. - View Dependent Claims (13, 14, 15)
-
-
16. In a computer system of the type including a processor, an operating system and a common memory space for holding DLL modules associated with a plurality of applications, said operating system including a module load routine for loading a DLL module into said common memory space, said operating system running a first application associated with a first DLL module, said first DLL module having a first DLL module name and being loaded into said common memory space, said operating system establishing a first module handle pointing to said first DLL module name and thereby identifying said first DLL module in said common memory space, said operating system loading a second application associated with a second DLL module, said second DLL module having a second DLL module name identical to said first DLL module name but said second DLL module being a different version than said first DLL module, an improved method for managing multiple DLL modules comprising, in combination:
-
associating said second DLL module with an alias file name; and providing said alias file name to said module load routine, whereby said operating system loads said second DLL module into said common memory space under said alias file name, and said operating system establishes a second module handle pointing to said alias file name and thereby identifying said second DLL module in said common memory space. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification