Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*===================================================================
Microsoft Denali
Microsoft Confidential. Copyright 1996 Microsoft Corporation. All Rights Reserved.
Component: Hit Manager
File: Denali.h
Owner: PramodD
This is the Hit (Request) Manager header file. ===================================================================*/ #ifndef DENALI_H
#define DENALI_H
//#define LOG_FCNOTIFICATIONS // logs file change notifications to a file
#include "Hitobj.h"
#include "CacheMgr.h"
#include "Request.h"
extern BOOL g_fShutDownInProgress;
inline IsShutDownInProgress() { return g_fShutDownInProgress; }
// de-comment the following line to build with no perfmon counters
//#define PERF_DISABLE
DWORD HandleHit(CIsapiReqInfo *pIReq); //void InitODBC( void );
//void UnInitODBC( void );
extern BOOL g_fOOP;
/* inlines to implement ISA per-thread bracketing in OOP case
*/
inline HRESULT StartISAThreadBracket(CIsapiReqInfo *pIReq) { if (g_fOOP && pIReq) { HRESULT hr = pIReq->ISAThreadNotify(TRUE); if (FAILED(hr)) return hr; } return S_OK; }
inline void EndISAThreadBracket(CIsapiReqInfo *pIReq) { if (g_fOOP && pIReq) { pIReq->ISAThreadNotify(FALSE); } }
extern HINSTANCE g_hinstDLL;
/* intrinsic object names (bug 164)
NOTE to add an intrinsic object to denali, follow these steps: 1. add both sz and wsz versions of the object name below 2. add a check for the sz version of the object name in CTemplate::FValidObjectName */ #define CONCAT(a, b) a ## b
#define WSZ(x) CONCAT(L, x)
#define SZ_OBJ_APPLICATION "Application"
#define SZ_OBJ_REQUEST "Request"
#define SZ_OBJ_RESPONSE "Response"
#define SZ_OBJ_SERVER "Server"
#define SZ_OBJ_CERTIFICATE "Certificate"
#define SZ_OBJ_SESSION "Session"
#define SZ_OBJ_SCRIPTINGNAMESPACE "ScriptingNamespace"
#define SZ_OBJ_OBJECTCONTEXT "ObjectContext"
#define SZ_OBJ_ASPPAGETLB "ASPPAGETLB"
#define SZ_OBJ_ASPGLOBALTLB "ASPGLOBALTLB"
#define WSZ_OBJ_APPLICATION WSZ(SZ_OBJ_APPLICATION)
#define WSZ_OBJ_REQUEST WSZ(SZ_OBJ_REQUEST)
#define WSZ_OBJ_RESPONSE WSZ(SZ_OBJ_RESPONSE)
#define WSZ_OBJ_SERVER WSZ(SZ_OBJ_SERVER)
#define WSZ_OBJ_CERTIFICATE WSZ(SZ_OBJ_CERTIFICATE)
#define WSZ_OBJ_SESSION WSZ(SZ_OBJ_SESSION)
#define WSZ_OBJ_SCRIPTINGNAMESPACE WSZ(SZ_OBJ_SCRIPTINGNAMESPACE)
#define WSZ_OBJ_OBJECTCONTEXT WSZ(SZ_OBJ_OBJECTCONTEXT)
#define WSZ_OBJ_ASPPAGETLB WSZ(SZ_OBJ_ASPPAGETLB)
#define WSZ_OBJ_ASPGLOBALTLB WSZ(SZ_OBJ_ASPGLOBALTLB)
#define BSTR_OBJ_APPLICATION g_bstrApplication
#define BSTR_OBJ_REQUEST g_bstrRequest
#define BSTR_OBJ_RESPONSE g_bstrResponse
#define BSTR_OBJ_SERVER g_bstrServer
#define BSTR_OBJ_CERTIFICATE g_bstrCertificate
#define BSTR_OBJ_SESSION g_bstrSession
#define BSTR_OBJ_SCRIPTINGNAMESPACE g_bstrScriptingNamespace
#define BSTR_OBJ_OBJECTCONTEXT g_bstrObjectContext
// Cached BSTRs
extern BSTR g_bstrApplication; extern BSTR g_bstrRequest; extern BSTR g_bstrResponse; extern BSTR g_bstrServer; extern BSTR g_bstrCertificate; extern BSTR g_bstrSession; extern BSTR g_bstrScriptingNamespace; extern BSTR g_bstrObjectContext;
// Session ID Cookie
// consist of 12 char literal constant and 8 hex process ID
#define CCH_SESSION_ID_COOKIE 20
#define CCH_SESSION_ID_COOKIE_PREFIX 12
#define SZ_SESSION_ID_COOKIE_PREFIX "ASPSESSIONID"
extern char g_szSessionIDCookieName[];
// CLIENT DEBUG (flag) Cookie
#define SZ_CLIENT_DEBUG_COOKIE "ASPCLIENTDEBUG"
// Dll name
#define ASP_DLL_NAME "ASP.DLL"
// Max # of bytes we will allocate before we assume an attack by a malicious browser
#define REQUEST_ALLOC_MAX (100 * 1024)
#define SZ_GLOBAL_ASA _T("GLOBAL.ASA")
#define CCH_GLOBAL_ASA 10
/*
* InitializeCriticalSection can throw. Use this macro instead */ #define ErrInitCriticalSection( cs, hr ) \
do { \ hr = S_OK; \ __try \ { \ INITIALIZE_CRITICAL_SECTION(cs); \ } \ __except(1) \ { \ hr = E_UNEXPECTED; \ } \ } while (0)
#ifdef LOG_FCNOTIFICATIONS
void LfcnCreateLogFile(); void LfcnCopyAdvance(char** ppchDest, const char* sz); void LfcnAppendLog(const char* sz); void LfcnLogNotification(char* szFile); void LfcnLogHandleCreation(int i, char* szApp); void LfcnUnmapLogFile(); #endif //LOG_FCNOTIFICATIONS
#endif // DENALI_H
|