Leaked source code of windows server 2003
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.
 
 
 
 
 
 

241 lines
5.9 KiB

/*++
Copyright (c) 1998-2002 Microsoft Corporation
Module Name:
data.h
Abstract:
This module declares global data for HTTP.SYS.
Author:
Keith Moore (keithmo) 10-Jun-1998
Revision History:
--*/
#ifndef _DATA_H_
#define _DATA_H_
//
// Some data types.
//
typedef struct _UL_CONFIG
{
USHORT ThreadsPerCpu;
USHORT IrpContextLookasideDepth;
USHORT ReceiveBufferLookasideDepth;
USHORT ResourceLookasideDepth;
USHORT RequestBufferLookasideDepth;
USHORT InternalRequestLookasideDepth;
USHORT SendTrackerLookasideDepth;
USHORT ResponseBufferLookasideDepth;
USHORT LogFileBufferLookasideDepth;
USHORT LogDataBufferLookasideDepth;
USHORT ErrorLogBufferLookasideDepth;
USHORT FilterWriteTrackerLookasideDepth;
BOOLEAN EnableHttpClient;
UL_URI_CACHE_CONFIG UriConfig;
} UL_CONFIG, *PUL_CONFIG;
extern PDRIVER_OBJECT g_UlDriverObject;
//
// The number of processors in the system.
//
extern CLONG g_UlNumberOfProcessors;
//
// The largest cache line in the system
//
extern ULONG g_UlCacheLineSize;
extern ULONG g_UlCacheLineBits;
extern BOOLEAN g_HttpClientEnabled;
//
// Total memory in the system
//
extern SIZE_T g_UlTotalPhysicalMemMB;
extern SIZE_T g_UlTotalNonPagedPoolBytes;
//
// Our nonpaged data.
//
extern PUL_NONPAGED_DATA g_pUlNonpagedData;
//
// A pointer to the system process.
//
extern PKPROCESS g_pUlSystemProcess;
//
// Our device objects and their container.
//
extern HANDLE g_UlDirectoryObject;
extern PDEVICE_OBJECT g_pUlControlDeviceObject;
extern PDEVICE_OBJECT g_pUlFilterDeviceObject;
extern PDEVICE_OBJECT g_pUlAppPoolDeviceObject;
extern PDEVICE_OBJECT g_pUcServerDeviceObject;
extern PVOID g_ClientImageHandle;
//
// Various pieces of configuration information.
//
extern ULONG g_UlMaxWorkQueueDepth;
extern ULONG g_UlMinWorkDequeueDepth;
extern USHORT g_UlIdleConnectionsHighMark;
extern USHORT g_UlIdleConnectionsLowMark;
extern ULONG g_UlIdleListTrimmerPeriod;
extern USHORT g_UlMaxEndpoints;
extern ULONG g_UlReceiveBufferSize;
extern ULONG g_UlMaxRequestsQueued;
extern ULONG g_UlMaxRequestBytes;
extern BOOLEAN g_UlOptForIntrMod;
extern BOOLEAN g_UlEnableNagling;
extern BOOLEAN g_UlEnableThreadAffinity;
extern ULONGLONG g_UlThreadAffinityMask;
extern ULONG g_UlMaxFieldLength;
extern BOOLEAN g_UlDisableLogBuffering;
extern ULONG g_UlLogBufferSize;
extern URL_C14N_CONFIG g_UrlC14nConfig;
extern ULONG g_UlMaxInternalUrlLength;
extern ULONG g_UlMaxVariableHeaderSize;
extern ULONG g_UlMaxFixedHeaderSize;
extern ULONG g_UlFixedHeadersMdlLength;
extern ULONG g_UlVariableHeadersMdlLength;
extern ULONG g_UlContentMdlLength;
extern ULONG g_UlChunkTrackerSize;
extern ULONG g_UlFullTrackerSize;
extern ULONG g_UlResponseBufferSize;
extern ULONG g_UlMaxBufferedBytes;
extern ULONG g_UlMaxCopyThreshold;
extern ULONG g_UlMaxBufferedSends;
extern ULONG g_UlMaxBytesPerSend;
extern ULONG g_UlMaxBytesPerRead;
extern ULONG g_UlMaxPipelinedRequests;
extern BOOLEAN g_UlEnableCopySend;
extern ULONG g_UlOpaqueIdTableSize;
extern ULONG g_UlMaxZombieHttpConnectionCount;
extern ULONG g_UlDisableServerHeader;
extern ULONG g_MaxConnections;
extern ULONG g_UlConnectionSendLimit;
extern ULONGLONG g_UlGlobalSendLimit;
//
// Cached Date header string.
//
extern LARGE_INTEGER g_UlSystemTime;
extern UCHAR g_UlDateString[];
extern ULONG g_UlDateStringLength;
//
// Security descriptor that has fileAll for Admin & Local System
//
extern PSECURITY_DESCRIPTOR g_pAdminAllSystemAll;
//
// ComputerName.
//
extern WCHAR g_UlComputerName[];
//
// Driver wide error logging config.
//
#define UL_ERROR_LOG_SUB_DIR (L"\\HTTPERR")
#define UL_ERROR_LOG_SUB_DIR_LENGTH (WCSLEN_LIT(UL_ERROR_LOG_SUB_DIR))
C_ASSERT(WCSLEN_LIT(DEFAULT_ERROR_LOGGING_DIR) <= MAX_PATH);
typedef struct _HTTP_ERROR_LOGGING_CONFIG
{
BOOLEAN Enabled; // FALSE if it's disabled
ULONG TruncateSize; // HTTP_LIMIT_INFINITE for no limit
UNICODE_STRING Dir; // Err logging directory.
WCHAR _DirBuffer[MAX_PATH + UL_ERROR_LOG_SUB_DIR_LENGTH + 1];
} HTTP_ERROR_LOGGING_CONFIG, * PHTTP_ERROR_LOGGING_CONFIG;
extern HTTP_ERROR_LOGGING_CONFIG g_UlErrLoggingConfig;
//
// Debug stuff.
//
#if DBG
extern ULONGLONG g_UlDebug;
extern ULONG g_UlBreakOnError;
extern ULONG g_UlVerboseErrors;
#endif // DBG
#if REFERENCE_DEBUG
extern PTRACE_LOG g_pEndpointUsageTraceLog;
extern PTRACE_LOG g_pMondoGlobalTraceLog;
extern PTRACE_LOG g_pPoolAllocTraceLog;
extern PTRACE_LOG g_pUriTraceLog;
extern PTRACE_LOG g_pTdiTraceLog;
extern PTRACE_LOG g_pHttpRequestTraceLog;
extern PTRACE_LOG g_pHttpConnectionTraceLog;
extern PTRACE_LOG g_pHttpResponseTraceLog;
extern PTRACE_LOG g_pAppPoolTraceLog;
extern PTRACE_LOG g_pAppPoolProcessTraceLog;
extern PTRACE_LOG g_pConfigGroupTraceLog;
extern PTRACE_LOG g_pControlChannelTraceLog;
extern PTRACE_LOG g_pThreadTraceLog;
extern PTRACE_LOG g_pFilterTraceLog;
extern PTRACE_LOG g_pIrpTraceLog;
extern PTRACE_LOG g_pTimeTraceLog;
extern PTRACE_LOG g_pAppPoolTimeTraceLog;
extern PTRACE_LOG g_pReplenishTraceLog;
extern PTRACE_LOG g_pMdlTraceLog;
extern PTRACE_LOG g_pSiteCounterTraceLog;
extern PTRACE_LOG g_pConnectionCountTraceLog;
extern PTRACE_LOG g_pConfigGroupInfoTraceLog;
extern PTRACE_LOG g_pChunkTrackerTraceLog;
extern PTRACE_LOG g_pWorkItemTraceLog;
extern PTRACE_LOG g_pUcTraceLog;
#endif // REFERENCE_DEBUG
extern PSTRING_LOG g_pGlobalStringLog;
extern GENERIC_MAPPING g_UrlAccessGenericMapping;
//
// Object types exported by the kernel but not in any header file.
//
extern POBJECT_TYPE *IoFileObjectType;
#endif // _DATA_H_