HSE_REQ_IS_IN_PROCESS

The HSE_REQ_IS_IN_PROCESS server support function is used to identify what process model an ISAPI extension is running in on IIS 6.0.

BOOL ServerSupportFunction(
   HCONN ConnID,
   DWORD dwServerSupportFunction,
   LPDWORD lpvBuffer,
   LPDWORD lpdwSize,
   LPDWORD lpdwDataType
);

Parameters

  • ConnID
    Specifies the connection identifier of the client to which the response data should be sent.

  • dwServerSupportFunction
    The name of the Server Support function, which in this case must be set to HSE_REQ_IS_IN_PROCESS.

  • lpvBuffer
    A pointer to a DWORD which will hold the flag that indicates the process type of the ISAPI extension. After the function call, the DWORD contains one of the following flags:

    Value

    Meaning

    HSE_APP_FLAG_IN_PROCESS

    This extension is running in process.

    Note that an ISAPI running in Worker Process Isolation mode will always return this flag, as will ISAPIs running in low isolation in IIS 5 Isolation Mode.

    HSE_APP_FLAG_ISOLATED_OOP

    This extension is running in high isolation, out of process.

    Note that only ISAPIs running in IIS 5 Isolation Mode can be run in high isolation OOP.

    HSE_APP_FLAG_POOLED_OOP

    This extension is running in medium isolation, in a pooled process.

    Note that only ISAPIs running in IIS 5 Isolation Mode can be run in medium isolation OOP.

  • lpdwSize
    This parameter is not used.

  • lpdwDataType
    This parameter is not used.

Return Values

The function returns TRUE upon successfully retrieving the header, or FALSE if there was an error.

Example Code

The following example code shows you how to use the C++ programming language to implement the HSE_REQ_IS_IN_PROCESS server support function. In this example, pECB should be declared as a formal argument in the HttpExtensionProc implementation

DWORD dwFlag; 
BOOL  fResult; 

fResult = pECB->ServerSupportFunction( pECB->ConnID, 
                                       HSE_REQ_IS_IN_PROCESS, 
                                       &dwFlag, 
                                       NULL, 
                                       NULL ); 

if ( !fResult ) 
{ 
    // 
    // Call failed.  Use GetLastError to get error code. 
    // 
} 

switch ( dwFlag ) 
{ 
    case HSE_APP_FLAG_IN_PROCESS: 

        // 
        // This extension is running in process 
        // 

        break; 

    case HSE_APP_FLAG_ISOLATED_OOP: 

        // 
        // 
        // This extension is running in high isolation OOP 
        // 
        break; 

    case HSE_APP_FLAG_POOLED_OOP: 

        // 
        // This extension is running in medium isolation OOP 
        // 
        break; 
} 

Requirements

Server: Requires or Windows Server 2003.

Product: IIS

Header: Declared in httpext.h.