| 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 |

| 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.
|