xpmgr/BuildTools/Include/hwebcore.h

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