Patent ID: 7284246

Claim:
A computer-executable program module stored on a computer-readable medium, said program module for extending device driver functionality of a device driver which drives an external device by a computing device which executes an operating system and the device driver, wherein plural driver plug-ins are storable on the computing device, each containing respective ones of plural extended functionalities for the device driver, the program module comprising: an initialization portion which is called by the operating system, whereupon the initialization portion detects the presence of the plural driver plug-ins, obtains information from each of the detected plural driver plug-ins, determines plug-ins which are supported by the device driver in accordance with the obtained information from each of the plural driver plug-ins, and passes the information from the determined driver plug-ins to the operating system; and an operation portion which accesses and executes the extended device driver functionality of the determined plug-ins, receives from the operating system an event notification corresponding to the external device, and passes the event notification to one or more of the determined driver plug-ins in the case that the driver plug-in accepts the event notifications, wherein the initialization portion obtains the information from a determined driver plug-in by receiving a pointer to an information function call within the driver plug-in, and then by executing the information function call which returns the information to the initialization portion.