US 7,467,392 B1
System and method for supporting new and existing extensions to application programming interfaces
Charles Alan Ludwig, Renton, Wash. (US); Anand Ganesh, Redmond, Wash. (US); James H. Dooley, IV, Bellevue, Wash. (US); David A. Goll, Seattle, Wash. (US); and Robin C. B. Speed, Winchester (United Kingdom)
Assigned to Microsoft Corporation, Redmod, Wash. (US)
Filed on Sep. 10, 2004, as Appl. No. 10/938,399.
Int. Cl. G06F 13/00 (2006.01)
U.S. Cl. 719—328  [710/19] 22 Claims
OG exemplary drawing
 
1. One or more computer readable storage media having stored thereon a plurality of instructions that, when instantiated and executed by one or more processors of a device, causes the one or more processors to:
receive, from an interface exposed by an additional object, a request associated with an Input/Output (I/O) call, wherein the additional object is one of a Application Programming Interface (API) plug-in or a API extension, and wherein the API plug-in is a contemporary API plug-in or a previous version API plug-in;
set, by a Component Object Model (COM) object, on behalf of the additional object, one or more setting values for the request so that the I/O call can be completed in a manner that is compatible with other I/O calls, wherein the setting comprises setting, in an event handle, a flag indicating that an I/O completion port is not to be signaled by a driver upon completion of the I/O call when the request is received from the previous version API plug-in, and not setting, in the event handle, the flag indicating that the I/O completion port is not to be signaled by the driver upon completion of the I/O call when the request is received from the contemporary API plug-in; and
invoke a driver to carry out the I/O call, the driver being associated with the additional object.