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.

742 lines
27 KiB

  1. /*++
  2. Copyright (c) 1997 Microsoft Corporation
  3. Module Name :
  4. iiscnfg.h
  5. Abstract:
  6. Contains public Metadata IDs used by IIS.
  7. Environment:
  8. Win32 User Mode
  9. --*/
  10. #ifndef _IISCNFG_H_
  11. #define _IISCNFG_H_
  12. //
  13. // Paths
  14. //
  15. #define IIS_MD_LOCAL_MACHINE_PATH "LM"
  16. //
  17. // Name of the default publishing root under an instance
  18. //
  19. #define IIS_MD_INSTANCE_ROOT "Root"
  20. //
  21. // ISAPI Filters are kept in a list under the instances and the service (for
  22. // global filters) in the following format:
  23. //
  24. // LM/W3Svc/<Instance>/Filters
  25. // MD_FILTER_LOAD_ORDER "Filter1, Filter2, Filter3"
  26. //
  27. // LM/W3Svc/<Instance>/Filters/Filter1
  28. // MD_FILTER_IMAGE_PATH "d:\inetsrv\myfilter.dll"
  29. //
  30. // LM/W3Svc/<Instance>/Filters/Filter2
  31. // MD_FILTER_IMAGE_PATH "d:\inetsrv\otherfilter.dll"
  32. //
  33. #define IIS_MD_ISAPI_FILTERS "/Filters"
  34. //
  35. // user types
  36. //
  37. // There are two user types:
  38. //
  39. // Server configuration - All the properties for configuring the server that
  40. // are not applicable to files and directories - such as Port, Host name,
  41. // Server comment, Connection timeout etc.
  42. //
  43. // File/Dir configuration - All the properties that can be configured down to
  44. // the files and directories - such as Access permissions (Read, Write etc),
  45. // Extension mapping, IP Security etc.
  46. //
  47. #define IIS_MD_UT_SERVER 1 // Server configuration parameters
  48. #define IIS_MD_UT_FILE 2 // File/Dir inheritable properties
  49. #define IIS_MD_UT_WAM 100 // Web Application configuration parameters
  50. #define ASP_MD_UT_APP 101 // ASP application configuration parameters
  51. #define IIS_MD_UT_END_RESERVED 2000 // All user types below this are
  52. // reserved for IIS services
  53. //
  54. // Metabase property IDs must be unique. This table defines reserved ranges
  55. //
  56. #define IIS_MD_ID_BEGIN_RESERVED 0x00000001 // IIS reserved range
  57. #define IIS_MD_ID_END_RESERVED 0x00007fff
  58. #define ASP_MD_ID_BEGIN_RESERVED 0x00007000 // ASP reserved range, subrange of IIS.
  59. #define ASP_MD_ID_END_RESERVED 0x000074ff
  60. #define WAM_MD_ID_BEGIN_RESERVED 0x00007500 // ASP reserved range, subrange of IIS.
  61. #define WAM_MD_ID_END_RESERVED 0x00007fff
  62. #define FP_MD_ID_BEGIN_RESERVED 0x00008000 // Front page reserved range
  63. #define FP_MD_ID_END_RESERVED 0x00008fff
  64. #define SMTP_MD_ID_BEGIN_RESERVED 0x00009000
  65. #define SMTP_MD_ID_END_RESERVED 0x00009fff
  66. #define POP3_MD_ID_BEGIN_RESERVED 0x0000a000
  67. #define POP3_MD_ID_END_RESERVED 0x0000afff
  68. #define NNTP_MD_ID_BEGIN_RESERVED 0x0000b000
  69. #define NNTP_MD_ID_END_RESERVED 0x0000bfff
  70. #define IMAP_MD_ID_BEGIN_RESERVED 0x0000c000
  71. #define IMAP_MD_ID_END_RESERVED 0x0000cfff
  72. //
  73. // General server related attributes - these should be added in the metabase
  74. // with a user type of IIS_MD_UT_SERVER
  75. //
  76. #define IIS_MD_SERVER_BASE 1000
  77. //
  78. // These are global to all services and should only be set at
  79. // the IIS root
  80. //
  81. #define MD_MAX_BANDWIDTH (IIS_MD_SERVER_BASE+0 )
  82. #define MD_MEMORY_CACHE_SIZE (IIS_MD_SERVER_BASE+1 )
  83. #define MD_KEY_TYPE (IIS_MD_SERVER_BASE+2 )
  84. #define MD_MAX_BANDWIDTH_BLOCKED (IIS_MD_SERVER_BASE+3 )
  85. //
  86. // These properties are applicable to both HTTP and FTP virtual
  87. // servers
  88. //
  89. // #define MD_spare1 (IIS_MD_SERVER_BASE+10 )
  90. // #define MD_spare2 (IIS_MD_SERVER_BASE+11 )
  91. #define MD_SERVER_COMMAND (IIS_MD_SERVER_BASE+12 )
  92. #define MD_CONNECTION_TIMEOUT (IIS_MD_SERVER_BASE+13 )
  93. #define MD_MAX_CONNECTIONS (IIS_MD_SERVER_BASE+14 )
  94. #define MD_SERVER_COMMENT (IIS_MD_SERVER_BASE+15 )
  95. #define MD_SERVER_STATE (IIS_MD_SERVER_BASE+16 )
  96. #define MD_SERVER_AUTOSTART (IIS_MD_SERVER_BASE+17 )
  97. #define MD_SERVER_SIZE (IIS_MD_SERVER_BASE+18 )
  98. #define MD_SERVER_LISTEN_BACKLOG (IIS_MD_SERVER_BASE+19 )
  99. #define MD_SERVER_LISTEN_TIMEOUT (IIS_MD_SERVER_BASE+20 )
  100. #define MD_DOWNLEVEL_ADMIN_INSTANCE (IIS_MD_SERVER_BASE+21 )
  101. #define MD_LEVELS_TO_SCAN (IIS_MD_SERVER_BASE+22 )
  102. #define MD_SERVER_BINDINGS (IIS_MD_SERVER_BASE+23 )
  103. #define MD_MAX_ENDPOINT_CONNECTIONS (IIS_MD_SERVER_BASE+24 )
  104. #define MD_CLUSTER_ENABLED (IIS_MD_SERVER_BASE+25 )
  105. #define MD_CLUSTER_SERVER_COMMAND (IIS_MD_SERVER_BASE+26 )
  106. #define MD_SERVER_CONFIGURATION_INFO (IIS_MD_SERVER_BASE+27 )
  107. #define MD_IISADMIN_EXTENSIONS (IIS_MD_SERVER_BASE+28 )
  108. //
  109. // These properties are specific to HTTP and belong to the website
  110. //
  111. #define IIS_MD_HTTP_BASE 2000
  112. #define MD_SECURE_PORT (IIS_MD_HTTP_BASE+20 ) // OBSOLETE!
  113. #define MD_SECURE_BINDINGS (IIS_MD_HTTP_BASE+21 )
  114. #define MD_SSL_MINSTRENGTH (IIS_MD_HTTP_BASE+30)
  115. #define MD_SSL_ALG (IIS_MD_HTTP_BASE+31)
  116. #define MD_SSL_PROTO (IIS_MD_HTTP_BASE+32)
  117. #define MD_SSL_CA (IIS_MD_HTTP_BASE+33)
  118. #define MD_FILTER_LOAD_ORDER (IIS_MD_HTTP_BASE+40 )
  119. #define MD_FILTER_IMAGE_PATH (IIS_MD_HTTP_BASE+41 )
  120. #define MD_FILTER_STATE (IIS_MD_HTTP_BASE+42 )
  121. #define MD_FILTER_ENABLED (IIS_MD_HTTP_BASE+43 )
  122. #define MD_FILTER_FLAGS (IIS_MD_HTTP_BASE+44 )
  123. #define MD_FILTER_DESCRIPTION (IIS_MD_HTTP_BASE+45 )
  124. #define MD_ADV_NOTIFY_PWD_EXP_IN_DAYS (IIS_MD_HTTP_BASE+63 )
  125. #define MD_ADV_CACHE_TTL (IIS_MD_HTTP_BASE+64 )
  126. #define MD_NET_LOGON_WKS (IIS_MD_HTTP_BASE+65 )
  127. #define MD_USE_HOST_NAME (IIS_MD_HTTP_BASE+66 )
  128. #define MD_AUTH_CHANGE_FLAGS (IIS_MD_HTTP_BASE+68 )
  129. #define MD_PROCESS_NTCR_IF_LOGGED_ON (IIS_MD_HTTP_BASE+70 )
  130. #define MD_ENABLE_CLUSTER_SUPPORT (IIS_MD_HTTP_BASE+71 )
  131. #define MD_FRONTPAGE_WEB (IIS_MD_HTTP_BASE+72 )
  132. #define MD_IN_PROCESS_ISAPI_APPS (IIS_MD_HTTP_BASE+73 )
  133. // Empty Slot IIS_MD_HTTP_BASE+100
  134. #define MD_APP_FRIENDLY_NAME (IIS_MD_HTTP_BASE+102)
  135. #define MD_APP_ROOT (IIS_MD_HTTP_BASE+103)
  136. #define MD_APP_ISOLATED (IIS_MD_HTTP_BASE+104)
  137. #define MD_APP_WAM_CLSID (IIS_MD_HTTP_BASE+105)
  138. #define MD_APP_PACKAGE_ID (IIS_MD_HTTP_BASE+106)
  139. #define MD_APP_PACKAGE_NAME (IIS_MD_HTTP_BASE+107)
  140. #define MD_APP_LAST_OUTPROC_PID (IIS_MD_HTTP_BASE+108)
  141. #define MD_APP_STATE (IIS_MD_HTTP_BASE+109)
  142. #define MD_APP_OOP_CRASH_LIMIT (IIS_MD_HTTP_BASE+110)
  143. #define MD_ADMIN_INSTANCE (IIS_MD_HTTP_BASE+115)
  144. #define MD_CUSTOM_ERROR_DESC (IIS_MD_HTTP_BASE+120)
  145. //
  146. // Site Server properties
  147. //
  148. #define MD_MD_SERVER_SS_AUTH_MAPPING (IIS_MD_HTTP_BASE+200)
  149. #define MD_CERT_CHECK_MODE (IIS_MD_HTTP_BASE+140)
  150. //
  151. // valid values for MD_CERT_CHECK_MODE
  152. //
  153. #define MD_CERT_NO_REVOC_CHECK 0x00000001
  154. //
  155. // Generic property indicating a failure status code - Can be used under
  156. // any component that can fail (virtual directory, filters, applications etc)
  157. //
  158. #define MD_WIN32_ERROR (IIS_MD_SERVER_BASE+99 )
  159. //
  160. // Virtual root properties - note MD_ACCESS_PERM is also generally set at
  161. // the virtual directory. These are used for both HTTP and FTP
  162. //
  163. #define IIS_MD_VR_BASE 3000
  164. #define MD_VR_PATH (IIS_MD_VR_BASE+1 )
  165. #define MD_VR_USERNAME (IIS_MD_VR_BASE+2 )
  166. #define MD_VR_PASSWORD (IIS_MD_VR_BASE+3 )
  167. #define MD_VR_ACL (IIS_MD_VR_BASE+4 )
  168. #define MD_VR_PASSTHROUGH (IIS_MD_VR_BASE+6 )
  169. //
  170. // This is used to flag down updated vr entries - Used for migrating vroots
  171. //
  172. #define MD_VR_UPDATE (IIS_MD_VR_BASE+5 )
  173. //
  174. // Logging related attributes
  175. //
  176. #define IIS_MD_LOG_BASE 4000
  177. #define MD_LOG_TYPE (IIS_MD_LOG_BASE+0 )
  178. #define MD_LOGFILE_DIRECTORY (IIS_MD_LOG_BASE+1 )
  179. #define MD_LOG_UNUSED1 (IIS_MD_LOG_BASE+2 )
  180. #define MD_LOGFILE_PERIOD (IIS_MD_LOG_BASE+3 )
  181. #define MD_LOGFILE_TRUNCATE_SIZE (IIS_MD_LOG_BASE+4 )
  182. #define MD_LOG_PLUGIN_MOD_ID (IIS_MD_LOG_BASE+5 )
  183. #define MD_LOG_PLUGIN_UI_ID (IIS_MD_LOG_BASE+6 )
  184. #define MD_LOGSQL_DATA_SOURCES (IIS_MD_LOG_BASE+7 )
  185. #define MD_LOGSQL_TABLE_NAME (IIS_MD_LOG_BASE+8 )
  186. #define MD_LOGSQL_USER_NAME (IIS_MD_LOG_BASE+9 )
  187. #define MD_LOGSQL_PASSWORD (IIS_MD_LOG_BASE+10 )
  188. #define MD_LOG_PLUGIN_ORDER (IIS_MD_LOG_BASE+11 )
  189. #define MD_LOG_PLUGINS_AVAILABLE (IIS_MD_LOG_BASE+12 )
  190. #define MD_LOGEXT_FIELD_MASK (IIS_MD_LOG_BASE+13 )
  191. #define MD_LOGEXT_FIELD_MASK2 (IIS_MD_LOG_BASE+14 )
  192. #define IIS_MD_LOG_LAST MD_LOGEXT_FIELD_MASK2
  193. //
  194. // Log type
  195. //
  196. #define MD_LOG_TYPE_DISABLED 0
  197. #define MD_LOG_TYPE_ENABLED 1
  198. //
  199. // LOGGING values
  200. //
  201. #define MD_LOGFILE_PERIOD_NONE 0
  202. #define MD_LOGFILE_PERIOD_MAXSIZE 0
  203. #define MD_LOGFILE_PERIOD_DAILY 1
  204. #define MD_LOGFILE_PERIOD_WEEKLY 2
  205. #define MD_LOGFILE_PERIOD_MONTHLY 3
  206. //
  207. // Field masks for extended logging
  208. // Fields are logged in order of increasing mask value
  209. //
  210. #define MD_EXTLOG_DATE 0x00000001
  211. #define MD_EXTLOG_TIME 0x00000002
  212. #define MD_EXTLOG_CLIENT_IP 0x00000004
  213. #define MD_EXTLOG_USERNAME 0x00000008
  214. #define MD_EXTLOG_SITE_NAME 0x00000010
  215. #define MD_EXTLOG_COMPUTER_NAME 0x00000020
  216. #define MD_EXTLOG_SERVER_IP 0x00000040
  217. #define MD_EXTLOG_METHOD 0x00000080
  218. #define MD_EXTLOG_URI_STEM 0x00000100
  219. #define MD_EXTLOG_URI_QUERY 0x00000200
  220. #define MD_EXTLOG_HTTP_STATUS 0x00000400
  221. #define MD_EXTLOG_WIN32_STATUS 0x00000800
  222. #define MD_EXTLOG_BYTES_SENT 0x00001000
  223. #define MD_EXTLOG_BYTES_RECV 0x00002000
  224. #define MD_EXTLOG_TIME_TAKEN 0x00004000
  225. #define MD_EXTLOG_SERVER_PORT 0x00008000
  226. #define MD_EXTLOG_USER_AGENT 0x00010000
  227. #define MD_EXTLOG_COOKIE 0x00020000
  228. #define MD_EXTLOG_REFERER 0x00040000
  229. #define MD_DEFAULT_EXTLOG_FIELDS (MD_EXTLOG_CLIENT_IP | \
  230. MD_EXTLOG_TIME | \
  231. MD_EXTLOG_METHOD | \
  232. MD_EXTLOG_URI_STEM | \
  233. MD_EXTLOG_HTTP_STATUS)
  234. //
  235. // Notification Flags
  236. //
  237. #define MD_NOTIFY_SECURE_PORT 0x00000001
  238. #define MD_NOTIFY_NONSECURE_PORT 0x00000002
  239. #define MD_NOTIFY_READ_RAW_DATA 0x00008000
  240. #define MD_NOTIFY_PREPROC_HEADERS 0x00004000
  241. #define MD_NOTIFY_AUTHENTICATION 0x00002000
  242. #define MD_NOTIFY_URL_MAP 0x00001000
  243. #define MD_NOTIFY_ACCESS_DENIED 0x00000800
  244. #define MD_NOTIFY_SEND_RESPONSE 0x00000040
  245. #define MD_NOTIFY_SEND_RAW_DATA 0x00000400
  246. #define MD_NOTIFY_LOG 0x00000200
  247. #define MD_NOTIFY_END_OF_REQUEST 0x00000080
  248. #define MD_NOTIFY_END_OF_NET_SESSION 0x00000100
  249. //
  250. // Filter ordering flags
  251. //
  252. #define MD_NOTIFY_ORDER_HIGH 0x00080000
  253. #define MD_NOTIFY_ORDER_MEDIUM 0x00040000
  254. #define MD_NOTIFY_ORDER_LOW 0x00020000
  255. #define MD_NOTIFY_ORDER_DEFAULT MD_NOTIFY_ORDER_LOW
  256. #define MD_NOTIFY_ORDER_MASK (MD_NOTIFY_ORDER_HIGH | \
  257. MD_NOTIFY_ORDER_MEDIUM | \
  258. MD_NOTIFY_ORDER_LOW)
  259. //
  260. // These are FTP specific properties
  261. //
  262. #define IIS_MD_FTP_BASE 5000
  263. #define MD_EXIT_MESSAGE (IIS_MD_FTP_BASE+1 )
  264. #define MD_GREETING_MESSAGE (IIS_MD_FTP_BASE+2 )
  265. #define MD_MAX_CLIENTS_MESSAGE (IIS_MD_FTP_BASE+3 )
  266. #define MD_MSDOS_DIR_OUTPUT (IIS_MD_FTP_BASE+4 )
  267. #define MD_ALLOW_ANONYMOUS (IIS_MD_FTP_BASE+5 )
  268. #define MD_ANONYMOUS_ONLY (IIS_MD_FTP_BASE+6 )
  269. #define MD_LOG_ANONYMOUS (IIS_MD_FTP_BASE+7 )
  270. #define MD_LOG_NONANONYMOUS (IIS_MD_FTP_BASE+8 )
  271. #define MD_ALLOW_REPLACE_ON_RENAME (IIS_MD_FTP_BASE+9 )
  272. //
  273. // These are SSL specific properties
  274. //
  275. #define IIS_MD_SSL_BASE 5500
  276. #define MD_SSL_PUBLIC_KEY ( IIS_MD_SSL_BASE+0 )
  277. #define MD_SSL_PRIVATE_KEY ( IIS_MD_SSL_BASE+1 )
  278. #define MD_SSL_KEY_PASSWORD ( IIS_MD_SSL_BASE+2 )
  279. #define MD_SSL_KEY_REQUEST ( IIS_MD_SSL_BASE+3 )
  280. #define MD_SSL_FRIENDLY_NAME ( IIS_MD_SSL_BASE+4 )
  281. #define MD_SSL_IDENT ( IIS_MD_SSL_BASE+5 )
  282. //
  283. // File and Directory related properties - these should be added in the
  284. // metabase with a user type of IIS_MD_UT_FILE
  285. //
  286. #define IIS_MD_FILE_PROP_BASE 6000
  287. #define MD_AUTHORIZATION (IIS_MD_FILE_PROP_BASE )
  288. #define MD_REALM (IIS_MD_FILE_PROP_BASE+1 )
  289. #define MD_HTTP_EXPIRES (IIS_MD_FILE_PROP_BASE+2 )
  290. #define MD_HTTP_PICS (IIS_MD_FILE_PROP_BASE+3 )
  291. #define MD_HTTP_CUSTOM (IIS_MD_FILE_PROP_BASE+4 )
  292. #define MD_DIRECTORY_BROWSING (IIS_MD_FILE_PROP_BASE+5 )
  293. #define MD_DEFAULT_LOAD_FILE (IIS_MD_FILE_PROP_BASE+6 )
  294. #define MD_CONTENT_NEGOTIATION (IIS_MD_FILE_PROP_BASE+7 )
  295. #define MD_CUSTOM_ERROR (IIS_MD_FILE_PROP_BASE+8 )
  296. #define MD_FOOTER_DOCUMENT (IIS_MD_FILE_PROP_BASE+9 )
  297. #define MD_FOOTER_ENABLED (IIS_MD_FILE_PROP_BASE+10 )
  298. #define MD_HTTP_REDIRECT (IIS_MD_FILE_PROP_BASE+11 )
  299. #define MD_DEFAULT_LOGON_DOMAIN (IIS_MD_FILE_PROP_BASE+12 )
  300. #define MD_LOGON_METHOD (IIS_MD_FILE_PROP_BASE+13 )
  301. #define MD_SCRIPT_MAPS (IIS_MD_FILE_PROP_BASE+14 )
  302. #define MD_MIME_MAP (IIS_MD_FILE_PROP_BASE+15 )
  303. #define MD_ACCESS_PERM (IIS_MD_FILE_PROP_BASE+16 )
  304. #define MD_HEADER_DOCUMENT (IIS_MD_FILE_PROP_BASE+17 )
  305. #define MD_HEADER_ENABLED (IIS_MD_FILE_PROP_BASE+18 )
  306. #define MD_IP_SEC (IIS_MD_FILE_PROP_BASE+19 )
  307. #define MD_ANONYMOUS_USER_NAME (IIS_MD_FILE_PROP_BASE+20 )
  308. #define MD_ANONYMOUS_PWD (IIS_MD_FILE_PROP_BASE+21 )
  309. #define MD_ANONYMOUS_USE_SUBAUTH (IIS_MD_FILE_PROP_BASE+22 )
  310. #define MD_DONT_LOG (IIS_MD_FILE_PROP_BASE+23 )
  311. #define MD_ADMIN_ACL (IIS_MD_FILE_PROP_BASE+27 )
  312. #define MD_SSI_EXEC_DISABLED (IIS_MD_FILE_PROP_BASE+28 )
  313. #define MD_DO_REVERSE_DNS (IIS_MD_FILE_PROP_BASE+29 )
  314. #define MD_SSL_ACCESS_PERM (IIS_MD_FILE_PROP_BASE+30 )
  315. #define MD_AUTHORIZATION_PERSISTENCE (IIS_MD_FILE_PROP_BASE+31 )
  316. #define MD_NTAUTHENTICATION_PROVIDERS (IIS_MD_FILE_PROP_BASE+32 )
  317. #define MD_SCRIPT_TIMEOUT (IIS_MD_FILE_PROP_BASE+33 )
  318. #define MD_CACHE_EXTENSIONS (IIS_MD_FILE_PROP_BASE+34 )
  319. #define MD_CREATE_PROCESS_AS_USER (IIS_MD_FILE_PROP_BASE+35 )
  320. #define MD_CREATE_PROC_NEW_CONSOLE (IIS_MD_FILE_PROP_BASE+36 )
  321. #define MD_POOL_IDC_TIMEOUT (IIS_MD_FILE_PROP_BASE+37 )
  322. #define MD_ALLOW_KEEPALIVES (IIS_MD_FILE_PROP_BASE+38 )
  323. #define MD_IS_CONTENT_INDEXED (IIS_MD_FILE_PROP_BASE+39 )
  324. #define MD_NOTIFY_EXAUTH (IIS_MD_FILE_PROP_BASE+40 )
  325. #define MD_CC_NO_CACHE (IIS_MD_FILE_PROP_BASE+41 )
  326. #define MD_CC_MAX_AGE (IIS_MD_FILE_PROP_BASE+42 )
  327. #define MD_CC_OTHER (IIS_MD_FILE_PROP_BASE+43 )
  328. #define MD_REDIRECT_HEADERS (IIS_MD_FILE_PROP_BASE+44 )
  329. #define MD_UPLOAD_READAHEAD_SIZE (IIS_MD_FILE_PROP_BASE+45 )
  330. #define MD_PUT_READ_SIZE (IIS_MD_FILE_PROP_BASE+46 )
  331. #define ASP_MD_SERVER_BASE 7000
  332. #define MD_ASP_BUFFERINGON (ASP_MD_SERVER_BASE + 0)
  333. #define MD_ASP_LOGERRORREQUESTS (ASP_MD_SERVER_BASE + 1)
  334. #define MD_ASP_SCRIPTERRORSSENTTOBROWSER (ASP_MD_SERVER_BASE + 2)
  335. #define MD_ASP_SCRIPTERRORMESSAGE (ASP_MD_SERVER_BASE + 3)
  336. #define MD_ASP_SCRIPTFILECACHESIZE (ASP_MD_SERVER_BASE + 4)
  337. #define MD_ASP_SCRIPTENGINECACHEMAX (ASP_MD_SERVER_BASE + 5)
  338. #define MD_ASP_SCRIPTTIMEOUT (ASP_MD_SERVER_BASE + 6)
  339. #define MD_ASP_SESSIONTIMEOUT (ASP_MD_SERVER_BASE + 7)
  340. #define MD_ASP_ENABLEPARENTPATHS (ASP_MD_SERVER_BASE + 8)
  341. #define MD_ASP_MEMFREEFACTOR (ASP_MD_SERVER_BASE + 9)
  342. #define MD_ASP_MINUSEDBLOCKS (ASP_MD_SERVER_BASE + 10)
  343. #define MD_ASP_ALLOWSESSIONSTATE (ASP_MD_SERVER_BASE + 11)
  344. #define MD_ASP_SCRIPTLANGUAGE (ASP_MD_SERVER_BASE + 12)
  345. // Empty slot
  346. #define MD_ASP_ALLOWOUTOFPROCCMPNTS (ASP_MD_SERVER_BASE + 14)
  347. #define MD_ASP_ALLOWOUTOFPROCCOMPONENTS (MD_ASP_ALLOWOUTOFPROCCMPNTS)
  348. #define MD_ASP_EXCEPTIONCATCHENABLE (ASP_MD_SERVER_BASE + 15)
  349. #define MD_ASP_CODEPAGE (ASP_MD_SERVER_BASE + 16)
  350. #define MD_ASP_SCRIPTLANGUAGELIST (ASP_MD_SERVER_BASE + 17)
  351. #define MD_ASP_ENABLESERVERDEBUG (ASP_MD_SERVER_BASE + 18)
  352. #define MD_ASP_ENABLECLIENTDEBUG (ASP_MD_SERVER_BASE + 19)
  353. #define MD_ASP_TRACKTHREADINGMODEL (ASP_MD_SERVER_BASE + 20)
  354. #define MD_ASP_ID_LAST (ASP_MD_SERVER_BASE + 20)
  355. //
  356. // Valid values for WAM
  357. //
  358. #define WAM_MD_SERVER_BASE 7500
  359. #define MD_WAM_USER_NAME (WAM_MD_SERVER_BASE+1)
  360. #define MD_WAM_PWD (WAM_MD_SERVER_BASE+2)
  361. //
  362. // Valid values for MD_AUTHORIZATION
  363. //
  364. #define MD_AUTH_ANONYMOUS 0x00000001
  365. #define MD_AUTH_BASIC 0x00000002
  366. #define MD_AUTH_NT 0x00000004 // Use NT auth provider (like NTLM)
  367. #define MD_AUTH_MD5 0x00000010
  368. #define MD_AUTH_MAPBASIC 0x00000020
  369. //
  370. // Valid values for MD_AUTHORIZATION_PERSISTENCE
  371. //
  372. #define MD_AUTH_SINGLEREQUEST 0x00000040
  373. #define MD_AUTH_SINGLEREQUESTIFPROXY 0x00000080
  374. //
  375. // Valid values for MD_ACCESS_PERM
  376. //
  377. #define MD_ACCESS_READ 0x00000001 // Allow for Read
  378. #define MD_ACCESS_WRITE 0x00000002 // Allow for Write
  379. #define MD_ACCESS_EXECUTE 0x00000004 // Allow for Execute
  380. #define MD_ACCESS_SCRIPT 0x00000200 // Allow for Script execution
  381. #define MD_ACCESS_NO_REMOTE_WRITE 0x00000400 // Local host access only
  382. #define MD_ACCESS_NO_REMOTE_READ 0x00001000 // Local host access only
  383. #define MD_ACCESS_NO_REMOTE_EXECUTE 0x00002000 // Local host access only
  384. #define MD_ACCESS_NO_REMOTE_SCRIPT 0x00004000 // Local host access only
  385. #define MD_NONSLL_ACCESS_MASK (MD_ACCESS_READ| \
  386. MD_ACCESS_WRITE| \
  387. MD_ACCESS_EXECUTE| \
  388. MD_ACCESS_SCRIPT| \
  389. MD_ACCESS_NO_REMOTE_READ| \
  390. MD_ACCESS_NO_REMOTE_WRITE| \
  391. MD_ACCESS_NO_REMOTE_EXECUTE| \
  392. MD_ACCESS_NO_REMOTE_SCRIPT \
  393. )
  394. //
  395. // Valid values for MD_SSL_ACCESS_PERM
  396. //
  397. #define MD_ACCESS_SSL 0x00000008 // Require SSL
  398. #define MD_ACCESS_NEGO_CERT 0x00000020 // Allow client SSL certs
  399. #define MD_ACCESS_REQUIRE_CERT 0x00000040 // Require client SSL certs
  400. #define MD_ACCESS_MAP_CERT 0x00000080 // Map SSL cert to NT account
  401. #define MD_ACCESS_SSL128 0x00000100 // Require 128 bit SSL
  402. #define MD_SSL_ACCESS_MASK (MD_ACCESS_SSL|\
  403. MD_ACCESS_NEGO_CERT|\
  404. MD_ACCESS_REQUIRE_CERT|\
  405. MD_ACCESS_MAP_CERT|\
  406. MD_ACCESS_SSL128)
  407. #define MD_ACCESS_MASK 0x00007fff
  408. //
  409. // Valid values for MD_DIRECTORY_BROWSING
  410. //
  411. #define MD_DIRBROW_SHOW_DATE 0x00000002
  412. #define MD_DIRBROW_SHOW_TIME 0x00000004
  413. #define MD_DIRBROW_SHOW_SIZE 0x00000008
  414. #define MD_DIRBROW_SHOW_EXTENSION 0x00000010
  415. #define MD_DIRBROW_LONG_DATE 0x00000020
  416. #define MD_DIRBROW_ENABLED 0x80000000 // Allow directory browsing
  417. #define MD_DIRBROW_LOADDEFAULT 0x40000000 // Load default doc if exists
  418. #define MD_DIRBROW_MASK (MD_DIRBROW_SHOW_DATE | \
  419. MD_DIRBROW_SHOW_TIME | \
  420. MD_DIRBROW_SHOW_SIZE | \
  421. MD_DIRBROW_SHOW_EXTENSION | \
  422. MD_DIRBROW_LONG_DATE | \
  423. MD_DIRBROW_LOADDEFAULT | \
  424. MD_DIRBROW_ENABLED)
  425. //
  426. // Valid values for MD_LOGON_METHOD
  427. //
  428. #define MD_LOGON_INTERACTIVE 0
  429. #define MD_LOGON_BATCH 1
  430. #define MD_LOGON_NETWORK 2
  431. //
  432. // Valid values for MD_NOTIFY_EXAUTH
  433. //
  434. #define MD_NOTIFEXAUTH_NTLMSSL 1
  435. //
  436. // Valid values for MD_FILTER_STATE
  437. //
  438. #define MD_FILTER_STATE_LOADED 1
  439. #define MD_FILTER_STATE_UNLOADED 4
  440. //
  441. // Valid values for MD_SERVER_STATE
  442. //
  443. #define MD_SERVER_STATE_STARTING 1
  444. #define MD_SERVER_STATE_STARTED 2
  445. #define MD_SERVER_STATE_STOPPING 3
  446. #define MD_SERVER_STATE_STOPPED 4
  447. #define MD_SERVER_STATE_PAUSING 5
  448. #define MD_SERVER_STATE_PAUSED 6
  449. #define MD_SERVER_STATE_CONTINUING 7
  450. //
  451. // Valid values for MD_SERVER_COMMAND
  452. //
  453. #define MD_SERVER_COMMAND_START 1
  454. #define MD_SERVER_COMMAND_STOP 2
  455. #define MD_SERVER_COMMAND_PAUSE 3
  456. #define MD_SERVER_COMMAND_CONTINUE 4
  457. //
  458. // Valid values for MD_SERVER_SIZE
  459. //
  460. #define MD_SERVER_SIZE_SMALL 0
  461. #define MD_SERVER_SIZE_MEDIUM 1
  462. #define MD_SERVER_SIZE_LARGE 2
  463. //
  464. // Valid values for MD_SERVER_CONFIG_INFO
  465. //
  466. #define MD_SERVER_CONFIG_SSL_40 0x00000001
  467. #define MD_SERVER_CONFIG_SSL_128 0x00000002
  468. #define MD_SERVER_CONFIG_ALLOW_ENCRYPT 0x00000004
  469. #define MD_SERVER_CONFIG_AUTO_PW_SYNC 0x00000008
  470. #define MD_SERVER_CONFIGURATION_MASK (MD_SERVER_CONFIG_SSL_40 | \
  471. MD_SERVER_CONFIG_SSL_128 | \
  472. MD_SERVER_CONFIG_ENCRYPT | \
  473. MD_SERVER_CONFIG_AUTO_PW_SYNC)
  474. //
  475. // Valid values for MD_SCRIPT_MAPS flag field
  476. //
  477. #define MD_SCRIPTMAPFLAG_SCRIPT 0x00000001
  478. #define MD_SCRIPTMAPFLAG_CHECK_PATH_INFO 0x00000004
  479. //
  480. // Bogus value - do not use
  481. //
  482. #define MD_SCRIPTMAPFLAG_ALLOWED_ON_READ_DIR 0x00000001
  483. //
  484. // Valid values for MD_AUTH_CHANGE_ENABLE
  485. //
  486. #define MD_AUTH_CHANGE_UNSECURE 0x00000001
  487. #define MD_AUTH_CHANGE_DISABLE 0x00000002
  488. #define MD_AUTH_ADVNOTIFY_DISABLE 0x00000004
  489. //
  490. // Valid values for MD_NET_LOGON_WKS
  491. //
  492. #define MD_NETLOGON_WKS_NONE 0
  493. #define MD_NETLOGON_WKS_IP 1
  494. #define MD_NETLOGON_WKS_DNS 2
  495. //
  496. // Valide substatus errors for MD_CUSTOM_ERROR
  497. //
  498. #define MD_ERROR_SUB401_LOGON 1
  499. #define MD_ERROR_SUB401_LOGON_CONFIG 2
  500. #define MD_ERROR_SUB401_LOGON_ACL 3
  501. #define MD_ERROR_SUB401_FILTER 4
  502. #define MD_ERROR_SUB401_APPLICATION 5
  503. #define MD_ERROR_SUB403_EXECUTE_ACCESS_DENIED 1
  504. #define MD_ERROR_SUB403_READ_ACCESS_DENIED 2
  505. #define MD_ERROR_SUB403_WRITE_ACCESS_DENIED 3
  506. #define MD_ERROR_SUB403_SSL_REQUIRED 4
  507. #define MD_ERROR_SUB403_SSL128_REQUIRED 5
  508. #define MD_ERROR_SUB403_ADDR_REJECT 6
  509. #define MD_ERROR_SUB403_CERT_REQUIRED 7
  510. #define MD_ERROR_SUB403_SITE_ACCESS_DENIED 8
  511. #define MD_ERROR_SUB403_TOO_MANY_USERS 9
  512. #define MD_ERROR_SUB403_INVALID_CNFG 10
  513. #define MD_ERROR_SUB403_PWD_CHANGE 11
  514. #define MD_ERROR_SUB403_MAPPER_DENY_ACCESS 12
  515. #define MD_ERROR_SUB403_CA_NOT_ALLOWED 13
  516. #define MD_ERROR_SUB502_TIMEOUT 1
  517. #define MD_ERROR_SUB502_PREMATURE_EXIT 2
  518. //
  519. // Delimiter in MD_VR_PATH
  520. //
  521. #define MD_VR_PATH_DELIMITER '|'
  522. #define MD_VR_PATH_DELIMITER_STRING "|"
  523. #if 0
  524. // NEED ISAPI App updates
  525. #endif
  526. //
  527. // MD_IP_SEC binary format description
  528. //
  529. /*
  530. This object is composed of 4 lists : 2 lists ( deny & grant ) of network addresses,
  531. the only allowed family is AF_INET.
  532. Each of this list is composed of sublists, one for each ( network address family,
  533. significant subnet mask ) combination. The significant subnet mask is stored as
  534. ( number of bytes all 1 ( 0xff ), bitmask in last byte ).
  535. This is followed by 2 lists ( deny & grant ) of DNS names. Each of these lists is
  536. composed of sublists, based on then number of components in the DNS name
  537. e.g. "microsoft.com" has 2 components, "www.msft.com" has 3.
  538. Header:
  539. SELFREFINDEX iDenyAddr; // address deny list
  540. // points to ADDRESS_HEADER
  541. SELFREFINDEX iGrantAddr; // address grant list
  542. // points to ADDRESS_HEADER
  543. SELFREFINDEX iDenyName; // DNS name deny list
  544. // points to NAME_HEADER
  545. SELFREFINDEX iGrantName; // DNS name grant list
  546. // points to NAME_HEADER
  547. DWORD dwFlags;
  548. DWORD cRefSize; // size of reference area ( in bytes )
  549. ADDRESS_HEADER :
  550. DWORD cEntries; // # of Entries[]
  551. DWORD cAddresses; // total # of addresses in all
  552. // ADDRESS_LIST_ENTRY
  553. ADDRESS_LIST_ENTRY Entries[];
  554. ADDRESS_LIST_ENTRY :
  555. DWORD iFamily;
  556. DWORD cAddresses;
  557. DWORD cFullBytes;
  558. DWORD LastByte;
  559. SELFREFINDEX iFirstAddress; // points to array of addresses
  560. NAME_HEADER :
  561. DWORD cEntries;
  562. DWORD cNames; // total # of names for all Entries[]
  563. NAME_LIST_ENTRY Entries[];
  564. Name list entry :
  565. DWORD cComponents; // # of DNS components
  566. DWORD cNames;
  567. SELFREFINDEX iName[]; // array of references to DNS names
  568. This is followed by address arrays & names pointed to by iFirstAddress & iName
  569. Names are '\0' delimited
  570. SELFREFINDEX is a DWORD offset from start of structure with high bit set to 1
  571. */
  572. //
  573. // Macros
  574. //
  575. #define MD_SET_DATA_RECORD(_pMDR, _id, _attr, _utype, _dtype, _dlen, _pData) \
  576. { \
  577. (_pMDR)->dwMDIdentifier=(_id); \
  578. (_pMDR)->dwMDAttributes=(_attr); \
  579. (_pMDR)->dwMDUserType=(_utype); \
  580. (_pMDR)->dwMDDataType=(_dtype); \
  581. (_pMDR)->dwMDDataLen=(_dlen); \
  582. (_pMDR)->pbMDData=(LPBYTE)(_pData); \
  583. }
  584. #endif // _IISCNFG_H_