Patent ID: 8117607

Claim:
A method comprising: loading, into a kernel of an operating system of a computer and without determining whether its calling dependencies will be loaded, a client kernel extension that is configured to access a function that provides a non-critical service, the function provided by a server kernel extension, wherein the function provided by a server kernel extension is not loaded into the kernel at the time of loading of the client kernel extension, and wherein the client kernel extension is loaded and executed even if the function provided by the server kernel extension is never to be loaded; running the client kernel extension in the kernel of the operating system of the computer prior to the function that provides a non-critical service provided by the server kernel extension being available for access by the client kernel extension; loading, into the kernel of the operating system of the computer and without determining whether its calling dependencies will be loaded, the server kernel extension after the loading of the client kernel extension, the server kernel extension providing the function that provides the non-critical service; registering, in a generic kernel extension framework, the function provided by the server kernel extension; receiving, in the generic kernel extension framework from the client kernel extension, a request to access the function provided by the server kernel extension; calling the function for access by the client kernel extension through the generic kernel extension framework; and unloading, from the kernel and independent of its calling dependencies, the server kernel extension even while the client kernel extension that is configured to access the function provided by the server kernel extension is still loaded in the kernel.