When your extension processes a request, it needs a way of communicating with IIS. In addition, there are several common functions—such as writing across a socket to the client—that are complicated to implement. It would be pointless to attempt to duplicate in the ISAPI extension the functionality that IIS already implements.
The ISAPI callback functions solve these problems. Pointers to the callback functions are made available to the ISAPI extension through the EXTENSION_CONTROL_BLOCK structure, a pointer to which is passed to the extension for each request.
The four callback functions used with ISAPI extensions are:
Specific examples showing how to use the callback functions are provided in Sending a Header and Reading and Writing Asynchronously.