mirror of https://github.com/UMSKT/xpmgr.git
106 lines
3.4 KiB
C
106 lines
3.4 KiB
C
/*++
|
|
|
|
Copyright (c) 2004 Microsoft Corporation
|
|
|
|
Module Name :
|
|
hostable_web_core.h
|
|
|
|
Abstract:
|
|
|
|
Hostable web core enables processes other than the W3WP.exe to load the IISCore
|
|
and effectively host pages without having to reverse-engineer IIS W3 core
|
|
functionality (ISAPI filter/extension support, authentication, authorization,
|
|
configuring http.sys, compression, etc.).
|
|
|
|
This header file defines the interface between the hostable web core and the hosting process
|
|
|
|
Note: Only single instance of the hostable web core will be allowed within one process
|
|
Attempt to initialize more than one will result in failure
|
|
|
|
Environment:
|
|
Win32 - User Mode
|
|
|
|
Project:
|
|
IIS7
|
|
|
|
--*/
|
|
|
|
#ifndef _HOSTABLE_WEB_CORE_H_
|
|
#define _HOSTABLE_WEB_CORE_H_
|
|
|
|
//
|
|
// The actual names of the hostable webcore DLL and the start/stop entry points
|
|
//
|
|
|
|
#define WEB_CORE_DLL_NAME L"hwebcore.dll"
|
|
#define WEB_CORE_ACTIVATE_DLL_ENTRY "WebCoreActivate"
|
|
#define WEB_CORE_SHUTDOWN_DLL_ENTRY "WebCoreShutdown"
|
|
|
|
|
|
|
|
//
|
|
// Prototype for the WEB_CORE_ACTIVATE_DLL_ENTRY call used to
|
|
// start the hostable webcore.
|
|
// Hosting process must provide path to the Application Host config file
|
|
// that contains the description of sites/applications/appools
|
|
// second parameter is meant mainly for identifying webcore instance
|
|
// when reporting NT event log events
|
|
//
|
|
// Return values:
|
|
//
|
|
// HRESULT_FROM_WIN32( ERROR_SERVICE_ALREADY_RUNNING ) - returned if
|
|
// instance of the hostable web core is already running in the process
|
|
//
|
|
// HRESULT_FROM_WIN32( ERROR_INVALID_DATA ) - most likely this error
|
|
// means configuration error in the AppHostConfigFile
|
|
//
|
|
// any other error that occurs during activation will be reported
|
|
//
|
|
|
|
typedef HRESULT
|
|
(*PFN_WEB_CORE_ACTIVATE)
|
|
(
|
|
IN PCWSTR pszAppHostConfigFile,
|
|
IN PCWSTR pszRootWebConfigFile,
|
|
IN PCWSTR pszInstanceName
|
|
);
|
|
|
|
|
|
//
|
|
// Prototype for the WEB_CORE_SHUTDOWN_DLL_ENTRY call used to
|
|
// stop the hostable webcore.
|
|
// Hosting process may choose between immediate shutdown and graceful shutdown
|
|
// If graceful shutdown is chosen then hostable webcore will stop receiving
|
|
// new requests and wait for the currently executing requests to complete for certain time
|
|
// (as specified in the config)
|
|
//
|
|
// Return values:
|
|
//
|
|
// HRESULT_FROM_WIN32( ERROR_SERVICE_NOT_ACTIVE ) - returned if
|
|
// hostable web core is not running and there is nothing to stop
|
|
//
|
|
// HRESULT_FROM_WIN32( ERROR_INVALID_SERVICE_CONTROL ) - returned if shutdown
|
|
// is already in progress. Note that this error wouldn't be returned
|
|
// if current shutdown in progress been triggered by the callback thread
|
|
// (the one that notifies about config change or bad health). In that case
|
|
// host asking for shutdown will be blocked until callback thread is completed
|
|
//
|
|
// HRESULT_FROM_WIN32( ERROR_SERVICE_REQUEST_TIMEOUT ) - returned if graceful
|
|
// shutdown was requested but was not able to complete within a given period
|
|
// This is rather a WARNING because webcore gets shutdown forcefully
|
|
// if graceful shutdown attempt times out. But caller may want to be informed
|
|
// that some requests may have been forcefully cancelled
|
|
//
|
|
// any other error that occurs during termination will be reported
|
|
//
|
|
|
|
typedef HRESULT
|
|
(*PFN_WEB_CORE_SHUTDOWN)
|
|
(
|
|
IN DWORD fImmediate
|
|
);
|
|
|
|
#endif
|
|
|
|
|