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

  1. /*++
  2. Copyright (c) 1998-2002 Microsoft Corporation
  3. Module Name:
  4. data.h
  5. Abstract:
  6. This module declares global data for HTTP.SYS.
  7. Author:
  8. Keith Moore (keithmo) 10-Jun-1998
  9. Revision History:
  10. --*/
  11. #ifndef _DATA_H_
  12. #define _DATA_H_
  13. //
  14. // Some data types.
  15. //
  16. typedef struct _UL_CONFIG
  17. {
  18. USHORT ThreadsPerCpu;
  19. USHORT IrpContextLookasideDepth;
  20. USHORT ReceiveBufferLookasideDepth;
  21. USHORT ResourceLookasideDepth;
  22. USHORT RequestBufferLookasideDepth;
  23. USHORT InternalRequestLookasideDepth;
  24. USHORT SendTrackerLookasideDepth;
  25. USHORT ResponseBufferLookasideDepth;
  26. USHORT LogFileBufferLookasideDepth;
  27. USHORT LogDataBufferLookasideDepth;
  28. USHORT ErrorLogBufferLookasideDepth;
  29. USHORT FilterWriteTrackerLookasideDepth;
  30. BOOLEAN EnableHttpClient;
  31. UL_URI_CACHE_CONFIG UriConfig;
  32. } UL_CONFIG, *PUL_CONFIG;
  33. extern PDRIVER_OBJECT g_UlDriverObject;
  34. //
  35. // The number of processors in the system.
  36. //
  37. extern CLONG g_UlNumberOfProcessors;
  38. //
  39. // The largest cache line in the system
  40. //
  41. extern ULONG g_UlCacheLineSize;
  42. extern ULONG g_UlCacheLineBits;
  43. extern BOOLEAN g_HttpClientEnabled;
  44. //
  45. // Total memory in the system
  46. //
  47. extern SIZE_T g_UlTotalPhysicalMemMB;
  48. extern SIZE_T g_UlTotalNonPagedPoolBytes;
  49. //
  50. // Our nonpaged data.
  51. //
  52. extern PUL_NONPAGED_DATA g_pUlNonpagedData;
  53. //
  54. // A pointer to the system process.
  55. //
  56. extern PKPROCESS g_pUlSystemProcess;
  57. //
  58. // Our device objects and their container.
  59. //
  60. extern HANDLE g_UlDirectoryObject;
  61. extern PDEVICE_OBJECT g_pUlControlDeviceObject;
  62. extern PDEVICE_OBJECT g_pUlFilterDeviceObject;
  63. extern PDEVICE_OBJECT g_pUlAppPoolDeviceObject;
  64. extern PDEVICE_OBJECT g_pUcServerDeviceObject;
  65. extern PVOID g_ClientImageHandle;
  66. //
  67. // Various pieces of configuration information.
  68. //
  69. extern ULONG g_UlMaxWorkQueueDepth;
  70. extern ULONG g_UlMinWorkDequeueDepth;
  71. extern USHORT g_UlIdleConnectionsHighMark;
  72. extern USHORT g_UlIdleConnectionsLowMark;
  73. extern ULONG g_UlIdleListTrimmerPeriod;
  74. extern USHORT g_UlMaxEndpoints;
  75. extern ULONG g_UlReceiveBufferSize;
  76. extern ULONG g_UlMaxRequestsQueued;
  77. extern ULONG g_UlMaxRequestBytes;
  78. extern BOOLEAN g_UlOptForIntrMod;
  79. extern BOOLEAN g_UlEnableNagling;
  80. extern BOOLEAN g_UlEnableThreadAffinity;
  81. extern ULONGLONG g_UlThreadAffinityMask;
  82. extern ULONG g_UlMaxFieldLength;
  83. extern BOOLEAN g_UlDisableLogBuffering;
  84. extern ULONG g_UlLogBufferSize;
  85. extern URL_C14N_CONFIG g_UrlC14nConfig;
  86. extern ULONG g_UlMaxInternalUrlLength;
  87. extern ULONG g_UlMaxVariableHeaderSize;
  88. extern ULONG g_UlMaxFixedHeaderSize;
  89. extern ULONG g_UlFixedHeadersMdlLength;
  90. extern ULONG g_UlVariableHeadersMdlLength;
  91. extern ULONG g_UlContentMdlLength;
  92. extern ULONG g_UlChunkTrackerSize;
  93. extern ULONG g_UlFullTrackerSize;
  94. extern ULONG g_UlResponseBufferSize;
  95. extern ULONG g_UlMaxBufferedBytes;
  96. extern ULONG g_UlMaxCopyThreshold;
  97. extern ULONG g_UlMaxBufferedSends;
  98. extern ULONG g_UlMaxBytesPerSend;
  99. extern ULONG g_UlMaxBytesPerRead;
  100. extern ULONG g_UlMaxPipelinedRequests;
  101. extern BOOLEAN g_UlEnableCopySend;
  102. extern ULONG g_UlOpaqueIdTableSize;
  103. extern ULONG g_UlMaxZombieHttpConnectionCount;
  104. extern ULONG g_UlDisableServerHeader;
  105. extern ULONG g_MaxConnections;
  106. extern ULONG g_UlConnectionSendLimit;
  107. extern ULONGLONG g_UlGlobalSendLimit;
  108. //
  109. // Cached Date header string.
  110. //
  111. extern LARGE_INTEGER g_UlSystemTime;
  112. extern UCHAR g_UlDateString[];
  113. extern ULONG g_UlDateStringLength;
  114. //
  115. // Security descriptor that has fileAll for Admin & Local System
  116. //
  117. extern PSECURITY_DESCRIPTOR g_pAdminAllSystemAll;
  118. //
  119. // ComputerName.
  120. //
  121. extern WCHAR g_UlComputerName[];
  122. //
  123. // Driver wide error logging config.
  124. //
  125. #define UL_ERROR_LOG_SUB_DIR (L"\\HTTPERR")
  126. #define UL_ERROR_LOG_SUB_DIR_LENGTH (WCSLEN_LIT(UL_ERROR_LOG_SUB_DIR))
  127. C_ASSERT(WCSLEN_LIT(DEFAULT_ERROR_LOGGING_DIR) <= MAX_PATH);
  128. typedef struct _HTTP_ERROR_LOGGING_CONFIG
  129. {
  130. BOOLEAN Enabled; // FALSE if it's disabled
  131. ULONG TruncateSize; // HTTP_LIMIT_INFINITE for no limit
  132. UNICODE_STRING Dir; // Err logging directory.
  133. WCHAR _DirBuffer[MAX_PATH + UL_ERROR_LOG_SUB_DIR_LENGTH + 1];
  134. } HTTP_ERROR_LOGGING_CONFIG, * PHTTP_ERROR_LOGGING_CONFIG;
  135. extern HTTP_ERROR_LOGGING_CONFIG g_UlErrLoggingConfig;
  136. //
  137. // Debug stuff.
  138. //
  139. #if DBG
  140. extern ULONGLONG g_UlDebug;
  141. extern ULONG g_UlBreakOnError;
  142. extern ULONG g_UlVerboseErrors;
  143. #endif // DBG
  144. #if REFERENCE_DEBUG
  145. extern PTRACE_LOG g_pEndpointUsageTraceLog;
  146. extern PTRACE_LOG g_pMondoGlobalTraceLog;
  147. extern PTRACE_LOG g_pPoolAllocTraceLog;
  148. extern PTRACE_LOG g_pUriTraceLog;
  149. extern PTRACE_LOG g_pTdiTraceLog;
  150. extern PTRACE_LOG g_pHttpRequestTraceLog;
  151. extern PTRACE_LOG g_pHttpConnectionTraceLog;
  152. extern PTRACE_LOG g_pHttpResponseTraceLog;
  153. extern PTRACE_LOG g_pAppPoolTraceLog;
  154. extern PTRACE_LOG g_pAppPoolProcessTraceLog;
  155. extern PTRACE_LOG g_pConfigGroupTraceLog;
  156. extern PTRACE_LOG g_pControlChannelTraceLog;
  157. extern PTRACE_LOG g_pThreadTraceLog;
  158. extern PTRACE_LOG g_pFilterTraceLog;
  159. extern PTRACE_LOG g_pIrpTraceLog;
  160. extern PTRACE_LOG g_pTimeTraceLog;
  161. extern PTRACE_LOG g_pAppPoolTimeTraceLog;
  162. extern PTRACE_LOG g_pReplenishTraceLog;
  163. extern PTRACE_LOG g_pMdlTraceLog;
  164. extern PTRACE_LOG g_pSiteCounterTraceLog;
  165. extern PTRACE_LOG g_pConnectionCountTraceLog;
  166. extern PTRACE_LOG g_pConfigGroupInfoTraceLog;
  167. extern PTRACE_LOG g_pChunkTrackerTraceLog;
  168. extern PTRACE_LOG g_pWorkItemTraceLog;
  169. extern PTRACE_LOG g_pUcTraceLog;
  170. #endif // REFERENCE_DEBUG
  171. extern PSTRING_LOG g_pGlobalStringLog;
  172. extern GENERIC_MAPPING g_UrlAccessGenericMapping;
  173. //
  174. // Object types exported by the kernel but not in any header file.
  175. //
  176. extern POBJECT_TYPE *IoFileObjectType;
  177. #endif // _DATA_H_