ISAPI Extensions Overview
Introduction to Extensions
ISAPI extensions are implemented as DLLs that are, like most DLLs, loaded either into the IIS process or, if part of an out-of-process application, into a separate process. Like ASP and HTML pages, IIS uses the virtual location of the .dll file in the file system to map the ISAPI extension into the URL namespace served by IIS.
When IIS receives a request that maps to an ISAPI extension, such as
GET https://www.mysite.com/MyISAPI.dll
IIS first checks to see if MyISAPI.dll is already loaded. By default, IIS is configured to cache ISAPI extensions. If it is determined that the extension is not yet loaded, IIS loads the DLL.
Once the extension DLL is loaded, the entire request is managed by the extension with IIS acting as an efficient intermediary and helper.
In addition, you can have an ISAPI control an entire namespace. If you use '*' as your extension, then all requests to that namespace will be handled by the ISAPI specified.
This section also contains:
- Extension Request Processing: Provides a high-level overview of the order in which processing events occur.
- Using Callback Functions: Describes how the extension communicates processing results to IIS.
- Asynchronous I/O Processing: Illustrates the order of processing events when a function performs asynchronously.
- ISAPI and CGI: Describes the benefits of ISAPI over CGI.
- Converting Existing CGI Scripts to ISAPI Extensions: Provides an overview of converting an existing CGI application to an ISAPI extension.
- Extension Security Issues: Discusses how security context is passed to an ISAPI extension.
- Important Notes for Extension Developers: Expands on some general issues regarding developing extensions.
- Extension Version Information: Details information about changes to the ISAPI extensions API in different versions of IIS.
Related Topics
- For more detailed reference information, see the Extension Reference.