Patent ID: 9098316
Filing Date: 2015-08-04
Classification: G06F

Abstract:
1. A computer-implemented method of routing a function call to a core dynamic link library (DLL) via a pass-through DLL, the method comprising: routing, by a computing system, one or more function calls from an application directly to one or more functions included in an original DLL without utilizing any pass-through DLL, wherein the one or more functions of the original DLL provide an original functionality; in response to routing the one or more function calls, changing an original name of the original DLL to a second name that identifies the original DLL as a second core DLL; in response to routing the one or more function calls, receiving and storing one or more core DLLs that include a first core DLL, wherein one or more functions are included in each core DLL of the one or more core DLLs, and wherein a number of the one or more functions included in the original DLL is identical to a number of the one or more functions in each core DLL of the one or more core DLLs; in response to routing the one or more function calls, generating the pass-through DLL having the original name of the original DLL; in response to generating the pass-through DLL, loading the pass-through DLL in a memory of the computing system; receiving, by the computing system, an indication that the application requires a specific functionality; in response to receiving the indication, identifying the first core DLL as providing the specific functionality, wherein identifying the first core DLL includes selecting the first core DLL from the one or more core DLLs based on the indication, and wherein identifying the first core DLL is performed by an initialization function internal to the pass-through DLL; in response to identifying the first core DLL, loading the first core DLL into the memory in the computing system; calling, by the pass-through DLL and in response to loading the first core DLL, an internal processing initialization function included in the first core DLL; receiving and storing, by the pass-through DLL and in response to calling the internal processing initialization function included in the first core DLL, an address of a list of pointers that reference a plurality of functions included in the first core DLL, wherein the plurality of functions includes a first function; receiving a first function call to the first function by the pass-through DLL and from the application ; calling the first function by the pass-through DLL, subsequent to receiving and storing the address and in response to receiving the function call, wherein calling the first function includes utilizing the address to identify a pointer included in the list of pointers, and wherein the pointer references the first function in the plurality of functions; and executing the first function in response to calling the first function by the pass-through DLL; receiving a second function call to a second function by the pass-through DLL, from the application, and without a prior receipt of an indication that the application requires a second functionality provided by the second core DLL of the one or more core DLLs; determining that the pass-through DLL has no knowledge of the list of pointers or any other list of pointers that reference the one or more functions included in each core DLL of the one or more core DLLs; in response to determining that the pass-through DLL has no knowledge of the list of pointers or any other list of pointers, identifying the second core DLL as providing the second functionality, wherein identifying the second core DLL includes selecting the second core DLL from the one or more core DLLs, and wherein identifying the second core DLL is performed by the initialization function internal to the pass-through DLL; in response to identifying the second core DLL, loading the second core DLL into the memory; calling, by the pass-through DLL and in response to loading the second core DLL, an internal processing initialization function included in the second core DLL; receiving and storing, by the pass-through DLL and in response to calling the internal processing initialization function included in the second core DLL, a second address of a second list of pointers that reference a second plurality of functions included in the second core DLL, wherein the second plurality of functions includes the second function; calling the second function by the pass-through DLL and in response to receiving the second address, wherein calling the second function includes utilizing the second address to identify a pointer included in the second list of pointers, and wherein the pointer included in the second list of pointers references the second function in the second plurality of functions, and; executing the second function in response to calling the second function by the pass-through DLL.