42 lines
1.6 KiB
Plaintext
42 lines
1.6 KiB
Plaintext
Asynchronous IO Support
|
|
|
|
ISAPI 1.0 support synchronous IO operations via callback
|
|
methods ReadClient() and WriteClient(). The ability to
|
|
support asynchronous operations is important; it frees
|
|
up a server pool thread from being blocked to complete
|
|
the IO operation. In addition, IIS server engine already
|
|
has built in support to manage asynchronous IO operations
|
|
using the completion ports and server thread pool.
|
|
|
|
ISAPI 2.0 supports asynchronous write operation using
|
|
the existing callback function WriteClient() with a special
|
|
flag indicating that the operation has to be performed
|
|
asynchronously. In addition, ISAPI 2.0 also provides a
|
|
mechanism to request the server to transmit a file using
|
|
the TransmitFile() .
|
|
|
|
ISAPI 3.0 supports asynchronous read operation from the
|
|
client using ServerSupportFunction() with HSE_REQ_ASYNC_READ_CLIENT
|
|
and a special flag indicating that the operation has to be
|
|
performed asynchronously. In addition, the ISAPI application
|
|
should submit a callback function and context by calling
|
|
ServerSupportFunction() with HSE_REQ_IO_COMPLETION.
|
|
|
|
To use the areadcli.dll extension created by this directory,
|
|
perform the following steps:
|
|
|
|
1) Create an IIS virtual root with execute permissions
|
|
2) Copy the isapi dlls into the directory
|
|
3) Point a browser at the virtual path
|
|
|
|
ie:
|
|
|
|
http://localhost/sdk/areadcli.dll
|
|
|
|
|
|
Disclaimer:
|
|
|
|
This sample is provided for the purposes of demonstrating an
|
|
ISAPI extension. It has not been tested for use in a production
|
|
environment and no support will be provided for use in a
|
|
production environment. |