In IIS 6.0, this support function replaces HSE_REQ_EXECUTE_CHILD.
The HSE_REQ_EXEC_URL support function asynchronously processes a child request. HSE_REQ_EXEC_URL enables an ISAPI extension to rewrite a URL request in order to call another extension or redirect to a file.
The support function provides the functionality to replace most Read Raw Data filters. Read Raw Data filters are difficult to write in many configurations. HSE_REQ_EXEC_URL makes it easy to examine or modify the contents of a request entity body before the target URL processes it.
This ServerSupportFunction allows ISAPI extensions to call HSE_REQ_EXEC_URL with a URL whose characters are not in the code page of the IIS server.
This function passes a pointer to the HSE_EXEC_URL_INFO structure.
BOOL ServerSupportFunction( HCONN ConnID, DWORD dwServerSupportFunction, LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType );
HSE_EXEC_URL_INFO *phseExecuteURLInfo = new HSE_EXEC_URL_INFO; ZeroMemory(phseExecuteURLInfo, sizeof(HSE_EXEC_URL_INFO)); /* Populate your HSE_EXEC_URL_INFO structure */ bResult = pECB->ServerSupportFunction ( pECB->ConnID, HSE_REQ_EXEC_URL, phseExecuteURLInfo, NULL, NULL );
There are a few caveats of HSE_REQ_EXEC_URL, including the fact that you cannot rewrite the request to change the authentication type. You can only change the authentication token for non-anonymous URLs. Additionally, you cannot rewrite the URL to cross an Application Pool boundary.
There are two situations in which HSE_REQ_EXEC_URL cannot replace ReadRawData filters:
A ReadRawData filter that implements an encrypted or compressed stream (non-HTTP) between client and server, such as SSL or custom compression.
A ReadRawData filter that accepts data from a non-HTTP client.