A method of intercepting application program interface, including dynamic
installation of associated software, within the user portion of an
operating system. An API interception control server in conjunction with
a system call interception module loads into all active process spaces an
API interception module. An initializer module within the API
interception module hooks and patches all API modules in the active
process address space. When called by the application programs, the API
routines' flow of execution, by virtue of their patched code, is
re-directed into a user-supplied code in a pre-entry routine of the API
interception module. The API routine might be completely by-passed or its
input parameters might be filtered and changed by the user code. During
the operation, the API routine is double-patched by the API interception
module to ensure that all simultaneous calls to the API routine will
re-direct its flow of control into the API interception module. A
user-supplied code in a post-entry module of the API interception module
might filter or change the return values of the API.