home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 May / PCFMay2001.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / iiscnfg.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  37.2 KB  |  978 lines

  1. /*++
  2.  
  3.  
  4.  
  5.    Copyright (c) 1997-1999 Microsoft Corporation
  6.  
  7.    Module  Name :
  8.  
  9.        iiscnfg.h
  10.  
  11.    Abstract:
  12.  
  13.         Contains public Metadata IDs used by IIS.
  14.  
  15.    Environment:
  16.  
  17.       Win32 User Mode
  18.  
  19. --*/
  20.  
  21. #ifndef _IISCNFG_H_
  22. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  23. #define _IISCNFG_H_
  24.  
  25.  
  26. //
  27. // Paths
  28. //
  29.  
  30. #define IIS_MD_LOCAL_MACHINE_PATH       "LM"
  31.  
  32. //
  33. // Name of the default publishing root under an instance
  34. //
  35.  
  36. #define IIS_MD_INSTANCE_ROOT            "Root"
  37.  
  38. //
  39. //  ISAPI Filters are kept in a list under the instances and the service (for
  40. //  global filters) in the following format:
  41. //
  42. //  LM/W3Svc/<Instance>/Filters
  43. //      MD_FILTER_LOAD_ORDER  "Filter1, Filter2, Filter3"
  44. //
  45. //  LM/W3Svc/<Instance>/Filters/Filter1
  46. //      MD_FILTER_IMAGE_PATH  "d:\inetsrv\myfilter.dll"
  47. //
  48. //  LM/W3Svc/<Instance>/Filters/Filter2
  49. //      MD_FILTER_IMAGE_PATH  "d:\inetsrv\otherfilter.dll"
  50. //
  51.  
  52. #define IIS_MD_ISAPI_FILTERS            "/Filters"
  53.  
  54. //
  55. // Path below each service to the key that publishes service information
  56. //
  57.  
  58. #define IIS_MD_SVC_INFO_PATH            "Info"
  59.  
  60. //
  61. // ADSI schema properties path
  62. //
  63.  
  64. #define IIS_MD_ADSI_SCHEMA_PATH_A       "/Schema"
  65. #define IIS_MD_ADSI_SCHEMA_PATH_W       L"/Schema"
  66. #define IIS_MD_ADSI_METAID_BEGIN        130000
  67.  
  68. //
  69. // user types
  70. //
  71. // There are two user types:
  72. //
  73. //   Server configuration - All the properties for configuring the server that
  74. //      are not applicable to files and directories - such as Port, Host name,
  75. //      Server comment, Connection timeout etc.
  76. //
  77. //  File/Dir configuration - All the properties that can be configured down to
  78. //      the files and directories - such as Access permissions (Read, Write etc),
  79. //      Extension mapping, IP Security etc.
  80. //
  81.  
  82. #define IIS_MD_UT_SERVER                1   // Server configuration parameters
  83. #define IIS_MD_UT_FILE                  2   // File/Dir inheritable properties
  84. #define IIS_MD_UT_WAM                 100   // Web Application configuration parameters
  85. #define ASP_MD_UT_APP                 101   // ASP application configuration parameters
  86. #define IIS_MD_UT_END_RESERVED       2000   // All user types below this are
  87.                                             // reserved for IIS services
  88.  
  89.  
  90. //
  91. //  Metabase property IDs must be unique.  This table defines reserved ranges
  92. //
  93.  
  94. #define IIS_MD_ID_BEGIN_RESERVED    0x00000001      // IIS reserved range
  95. #define IIS_MD_ID_END_RESERVED      0x00007fff
  96. #define ASP_MD_ID_BEGIN_RESERVED    0x00007000      // ASP reserved range, subrange of IIS.
  97. #define ASP_MD_ID_END_RESERVED      0x000074ff
  98. #define WAM_MD_ID_BEGIN_RESERVED    0x00007500      // ASP reserved range, subrange of IIS.
  99. #define WAM_MD_ID_END_RESERVED      0x00007fff
  100. #define FP_MD_ID_BEGIN_RESERVED     0x00008000      // Front page reserved range
  101. #define FP_MD_ID_END_RESERVED       0x00008fff
  102. #define SMTP_MD_ID_BEGIN_RESERVED   0x00009000
  103. #define SMTP_MD_ID_END_RESERVED     0x00009fff
  104. #define POP3_MD_ID_BEGIN_RESERVED   0x0000a000
  105. #define POP3_MD_ID_END_RESERVED     0x0000afff
  106. #define NNTP_MD_ID_BEGIN_RESERVED   0x0000b000
  107. #define NNTP_MD_ID_END_RESERVED     0x0000bfff
  108. #define IMAP_MD_ID_BEGIN_RESERVED   0x0000c000
  109. #define IMAP_MD_ID_END_RESERVED     0x0000cfff
  110. #define MSCS_MD_ID_BEGIN_RESERVED   0x0000d000
  111. #define MSCS_MD_ID_END_RESERVED     0x0000dfff
  112.  
  113. //
  114. //  General server related attributes - these should be added in the metabase
  115. //  with a user type of IIS_MD_UT_SERVER
  116. //
  117.  
  118. #define IIS_MD_SERVER_BASE              1000
  119.  
  120. //
  121. //  These are global to all services and should only be set at
  122. //  the IIS root
  123. //
  124.  
  125. #define MD_MAX_BANDWIDTH                (IIS_MD_SERVER_BASE+0  )
  126. #define MD_KEY_TYPE                     (IIS_MD_SERVER_BASE+2  )
  127. #define MD_MAX_BANDWIDTH_BLOCKED        (IIS_MD_SERVER_BASE+3  )
  128. #define MD_SCHEMA_METAID                (IIS_MD_SERVER_BASE+4  )
  129.  
  130. //
  131. //  These properties are applicable to both HTTP and FTP virtual
  132. //  servers
  133. //
  134.  
  135. #define MD_SERVER_COMMAND               (IIS_MD_SERVER_BASE+12 )
  136. #define MD_CONNECTION_TIMEOUT           (IIS_MD_SERVER_BASE+13 )
  137. #define MD_MAX_CONNECTIONS              (IIS_MD_SERVER_BASE+14 )
  138. #define MD_SERVER_COMMENT               (IIS_MD_SERVER_BASE+15 )
  139. #define MD_SERVER_STATE                 (IIS_MD_SERVER_BASE+16 )
  140. #define MD_SERVER_AUTOSTART             (IIS_MD_SERVER_BASE+17 )
  141. #define MD_SERVER_SIZE                  (IIS_MD_SERVER_BASE+18 )
  142. #define MD_SERVER_LISTEN_BACKLOG        (IIS_MD_SERVER_BASE+19 )
  143. #define MD_SERVER_LISTEN_TIMEOUT        (IIS_MD_SERVER_BASE+20 )
  144. #define MD_DOWNLEVEL_ADMIN_INSTANCE     (IIS_MD_SERVER_BASE+21 )
  145. #define MD_LEVELS_TO_SCAN               (IIS_MD_SERVER_BASE+22 )
  146. #define MD_SERVER_BINDINGS              (IIS_MD_SERVER_BASE+23 )
  147. #define MD_MAX_ENDPOINT_CONNECTIONS     (IIS_MD_SERVER_BASE+24 )
  148. #define MD_SERVER_CONFIGURATION_INFO    (IIS_MD_SERVER_BASE+27 )
  149. #define MD_IISADMIN_EXTENSIONS          (IIS_MD_SERVER_BASE+28 )
  150. #define MD_DISABLE_SOCKET_POOLING       (IIS_MD_SERVER_BASE+29 )
  151. #define MD_METADATA_ID_REGISTRATION     (IIS_MD_SERVER_BASE+30 )
  152.  
  153.  
  154. //
  155. //  These properties are specific to HTTP and belong to the website
  156. //
  157.  
  158. #define IIS_MD_HTTP_BASE                2000
  159.  
  160. #define MD_SECURE_BINDINGS              (IIS_MD_HTTP_BASE+21 )
  161.  
  162. #define MD_FILTER_LOAD_ORDER            (IIS_MD_HTTP_BASE+40 )
  163. #define MD_FILTER_IMAGE_PATH            (IIS_MD_HTTP_BASE+41 )
  164. #define MD_FILTER_STATE                 (IIS_MD_HTTP_BASE+42 )
  165. #define MD_FILTER_ENABLED               (IIS_MD_HTTP_BASE+43 )
  166. #define MD_FILTER_FLAGS                 (IIS_MD_HTTP_BASE+44 )
  167. #define MD_FILTER_DESCRIPTION           (IIS_MD_HTTP_BASE+45 )
  168.  
  169. #define MD_ADV_NOTIFY_PWD_EXP_IN_DAYS   (IIS_MD_HTTP_BASE+63 )
  170. #define MD_ADV_CACHE_TTL                (IIS_MD_HTTP_BASE+64 )
  171. #define MD_NET_LOGON_WKS                (IIS_MD_HTTP_BASE+65 )
  172. #define MD_USE_HOST_NAME                (IIS_MD_HTTP_BASE+66 )
  173. #define MD_AUTH_CHANGE_FLAGS            (IIS_MD_HTTP_BASE+68 )
  174.  
  175. #define MD_PROCESS_NTCR_IF_LOGGED_ON    (IIS_MD_HTTP_BASE+70 )
  176.  
  177. #define MD_FRONTPAGE_WEB                (IIS_MD_HTTP_BASE+72 )
  178. #define MD_IN_PROCESS_ISAPI_APPS        (IIS_MD_HTTP_BASE+73 )
  179.  
  180. #define MD_ALLOW_PATH_INFO_FOR_SCRIPT_MAPPINGS  ( IIS_MD_HTTP_BASE+95)
  181.  
  182. #define MD_APP_FRIENDLY_NAME            (IIS_MD_HTTP_BASE+102)
  183. #define MD_APP_ROOT                     (IIS_MD_HTTP_BASE+103)
  184. #define MD_APP_ISOLATED                 (IIS_MD_HTTP_BASE+104)
  185. #define MD_APP_WAM_CLSID                (IIS_MD_HTTP_BASE+105)
  186. #define MD_APP_PACKAGE_ID               (IIS_MD_HTTP_BASE+106)
  187. #define MD_APP_PACKAGE_NAME             (IIS_MD_HTTP_BASE+107)
  188. #define MD_APP_OOP_RECOVER_LIMIT        (IIS_MD_HTTP_BASE+110)
  189.  
  190.  
  191. #define MD_ADMIN_INSTANCE               (IIS_MD_HTTP_BASE+115)
  192. // This is only used by setup & UI
  193. #define MD_NOT_DELETABLE                (IIS_MD_HTTP_BASE+116)
  194.  
  195. #define MD_CUSTOM_ERROR_DESC            (IIS_MD_HTTP_BASE+120)
  196.  
  197. //
  198. //  Client Access License parameters
  199. //
  200.  
  201. #define MD_CAL_VC_PER_CONNECT           (IIS_MD_HTTP_BASE+130)
  202. #define MD_CAL_AUTH_RESERVE_TIMEOUT     (IIS_MD_HTTP_BASE+131)
  203. #define MD_CAL_SSL_RESERVE_TIMEOUT      (IIS_MD_HTTP_BASE+132)
  204. #define MD_CAL_W3_ERROR                 (IIS_MD_HTTP_BASE+133)
  205.  
  206. //
  207. // CPU Accounting and Throttling Properties
  208. //
  209.  
  210. //
  211. // The enabled flags are per Application or CGI
  212. //
  213.  
  214. #define MD_CPU_CGI_ENABLED              (IIS_MD_HTTP_BASE+140)
  215. #define MD_CPU_APP_ENABLED              (IIS_MD_HTTP_BASE+141)
  216.  
  217. //
  218. // These values are per site
  219. //
  220.  
  221. #define MD_CPU_LIMITS_ENABLED           (IIS_MD_HTTP_BASE+143)
  222. #define MD_CPU_RESET_INTERVAL           (IIS_MD_HTTP_BASE+144)
  223. #define MD_CPU_LOGGING_INTERVAL         (IIS_MD_HTTP_BASE+145)
  224. #define MD_CPU_LOGGING_OPTIONS          (IIS_MD_HTTP_BASE+146)
  225. #define MD_CPU_CGI_LIMIT                (IIS_MD_HTTP_BASE+148)
  226. #define MD_CPU_LIMIT_LOGEVENT           (IIS_MD_HTTP_BASE+149)
  227. #define MD_CPU_LIMIT_PRIORITY           (IIS_MD_HTTP_BASE+150)
  228. #define MD_CPU_LIMIT_PROCSTOP           (IIS_MD_HTTP_BASE+151)
  229. #define MD_CPU_LIMIT_PAUSE              (IIS_MD_HTTP_BASE+152)
  230.  
  231. //
  232. // Valid values for CPU Accounting's MD_CPU_LOGGING_OPTIONS field
  233. //
  234.  
  235. #define MD_CPU_DISABLE_ALL_LOGGING      0x0
  236. #define MD_CPU_ENABLE_ALL_PROC_LOGGING  0x1
  237. #define MD_CPU_ENABLE_CGI_LOGGING       0x2
  238. #define MD_CPU_ENABLE_APP_LOGGING       0x4
  239.  
  240. //
  241. // Valid values for CPU Accounting's MD_CPU_LOGGING_MASK field
  242. // This defines which fields will be logged
  243. //
  244.  
  245. #define MD_CPU_ENABLE_EVENT             0x01
  246. #define MD_CPU_ENABLE_PROC_TYPE         0x02
  247. #define MD_CPU_ENABLE_USER_TIME         0x04
  248. #define MD_CPU_ENABLE_KERNEL_TIME       0x08
  249. #define MD_CPU_ENABLE_PAGE_FAULTS       0x10
  250. #define MD_CPU_ENABLE_TOTAL_PROCS       0x20
  251. #define MD_CPU_ENABLE_ACTIVE_PROCS      0x40
  252. #define MD_CPU_ENABLE_TERMINATED_PROCS  0x80
  253.  
  254. #define MD_CPU_ENABLE_LOGGING           0x80000000
  255.  
  256. //
  257. //  Site Server properties
  258. //
  259.  
  260.  
  261. #define MD_MD_SERVER_SS_AUTH_MAPPING    (IIS_MD_HTTP_BASE+200)
  262.  
  263. //
  264. // valid values for MD_CERT_CHECK_MODE
  265. //
  266.  
  267. #define MD_CERT_NO_REVOC_CHECK          0x00000001
  268. #define MD_CERT_CACHE_RETRIEVAL_ONLY    0x00000002
  269.  
  270. //
  271. // HTTP Compression properties.  All are global and unheritable.
  272. //
  273.  
  274. #define MD_HC_COMPRESSION_DIRECTORY        (IIS_MD_HTTP_BASE+210)
  275. #define MD_HC_CACHE_CONTROL_HEADER         (IIS_MD_HTTP_BASE+211)
  276. #define MD_HC_EXPIRES_HEADER               (IIS_MD_HTTP_BASE+212)
  277. #define MD_HC_DO_DYNAMIC_COMPRESSION       (IIS_MD_HTTP_BASE+213)
  278. #define MD_HC_DO_STATIC_COMPRESSION        (IIS_MD_HTTP_BASE+214)
  279. #define MD_HC_DO_ON_DEMAND_COMPRESSION     (IIS_MD_HTTP_BASE+215)
  280. #define MD_HC_DO_DISK_SPACE_LIMITING       (IIS_MD_HTTP_BASE+216)
  281. #define MD_HC_NO_COMPRESSION_FOR_HTTP_10   (IIS_MD_HTTP_BASE+217)
  282. #define MD_HC_NO_COMPRESSION_FOR_PROXIES   (IIS_MD_HTTP_BASE+218)
  283. #define MD_HC_NO_COMPRESSION_FOR_RANGE     (IIS_MD_HTTP_BASE+219)
  284. #define MD_HC_SEND_CACHE_HEADERS           (IIS_MD_HTTP_BASE+220)
  285. #define MD_HC_MAX_DISK_SPACE_USAGE         (IIS_MD_HTTP_BASE+221)
  286. #define MD_HC_IO_BUFFER_SIZE               (IIS_MD_HTTP_BASE+222)
  287. #define MD_HC_COMPRESSION_BUFFER_SIZE      (IIS_MD_HTTP_BASE+223)
  288. #define MD_HC_MAX_QUEUE_LENGTH             (IIS_MD_HTTP_BASE+224)
  289. #define MD_HC_FILES_DELETED_PER_DISK_FREE  (IIS_MD_HTTP_BASE+225)
  290. #define MD_HC_MIN_FILE_SIZE_FOR_COMP       (IIS_MD_HTTP_BASE+226)
  291.  
  292. #define MD_HC_COMPRESSION_DLL              (IIS_MD_HTTP_BASE+237)
  293. #define MD_HC_FILE_EXTENSIONS              (IIS_MD_HTTP_BASE+238)
  294. #define MD_HC_MIME_TYPE                    (IIS_MD_HTTP_BASE+239)
  295. #define MD_HC_PRIORITY                     (IIS_MD_HTTP_BASE+240)
  296. #define MD_HC_DYNAMIC_COMPRESSION_LEVEL    (IIS_MD_HTTP_BASE+241)
  297. #define MD_HC_ON_DEMAND_COMP_LEVEL         (IIS_MD_HTTP_BASE+242)
  298. #define MD_HC_CREATE_FLAGS                 (IIS_MD_HTTP_BASE+243)
  299. #define MD_HC_SCRIPT_FILE_EXTENSIONS       (IIS_MD_HTTP_BASE+244)
  300.  
  301. //
  302. // Generic property indicating a failure status code - Can be used under
  303. // any component that can fail (virtual directory, filters, applications etc)
  304. //
  305.  
  306. #define MD_WIN32_ERROR                  (IIS_MD_SERVER_BASE+99 )
  307.  
  308. //
  309. // Virtual root properties - note MD_ACCESS_PERM is also generally set at
  310. // the virtual directory.  These are used for both HTTP and FTP
  311. //
  312.  
  313. #define IIS_MD_VR_BASE                  3000
  314.  
  315. #define MD_VR_PATH                      (IIS_MD_VR_BASE+1 )
  316. #define MD_VR_USERNAME                  (IIS_MD_VR_BASE+2 )
  317. #define MD_VR_PASSWORD                  (IIS_MD_VR_BASE+3 )
  318. #define MD_VR_PASSTHROUGH               (IIS_MD_VR_BASE+6 )
  319. #define MD_VR_NO_CACHE                  (IIS_MD_VR_BASE+7 )
  320. #define MD_VR_IGNORE_TRANSLATE          (IIS_MD_VR_BASE+8 )
  321.  
  322.  
  323. //
  324. //  Logging related attributes
  325. //
  326.  
  327. #define IIS_MD_LOG_BASE                 4000
  328.  
  329. #define MD_LOG_TYPE                     (IIS_MD_LOG_BASE+0  )
  330. #define MD_LOGFILE_DIRECTORY            (IIS_MD_LOG_BASE+1  )
  331. #define MD_LOG_UNUSED1                  (IIS_MD_LOG_BASE+2  )
  332. #define MD_LOGFILE_PERIOD               (IIS_MD_LOG_BASE+3  )
  333. #define MD_LOGFILE_TRUNCATE_SIZE        (IIS_MD_LOG_BASE+4  )
  334. #define MD_LOG_PLUGIN_MOD_ID            (IIS_MD_LOG_BASE+5  )
  335. #define MD_LOG_PLUGIN_UI_ID             (IIS_MD_LOG_BASE+6  )
  336. #define MD_LOGSQL_DATA_SOURCES          (IIS_MD_LOG_BASE+7  )
  337. #define MD_LOGSQL_TABLE_NAME            (IIS_MD_LOG_BASE+8  )
  338. #define MD_LOGSQL_USER_NAME             (IIS_MD_LOG_BASE+9  )
  339. #define MD_LOGSQL_PASSWORD              (IIS_MD_LOG_BASE+10 )
  340. #define MD_LOG_PLUGIN_ORDER             (IIS_MD_LOG_BASE+11 )
  341. #define MD_LOG_PLUGINS_AVAILABLE        (IIS_MD_LOG_BASE+12 )
  342. #define MD_LOGEXT_FIELD_MASK            (IIS_MD_LOG_BASE+13 )
  343. #define MD_LOGEXT_FIELD_MASK2           (IIS_MD_LOG_BASE+14 )
  344.  
  345. //
  346. // Allow W3C logging file naming and rollover based on Local Time
  347. //
  348.  
  349. #define MD_LOGFILE_LOCALTIME_ROLLOVER   (IIS_MD_LOG_BASE+15)
  350.  
  351. #define IIS_MD_LOG_LAST                 MD_LOGFILE_LOCALTIME_ROLLOVER
  352.  
  353. //
  354. // Log type
  355. //
  356.  
  357. #define MD_LOG_TYPE_DISABLED            0
  358. #define MD_LOG_TYPE_ENABLED             1
  359.  
  360. //
  361. // LOGGING values
  362. //
  363.  
  364. #define MD_LOGFILE_PERIOD_NONE          0
  365. #define MD_LOGFILE_PERIOD_MAXSIZE       0
  366. #define MD_LOGFILE_PERIOD_DAILY         1
  367. #define MD_LOGFILE_PERIOD_WEEKLY        2
  368. #define MD_LOGFILE_PERIOD_MONTHLY       3
  369. #define MD_LOGFILE_PERIOD_HOURLY        4
  370.  
  371. //
  372. // Field masks for extended logging
  373. // Fields are logged in order of increasing mask value
  374. //
  375.  
  376. #define MD_EXTLOG_DATE                  0x00000001
  377. #define MD_EXTLOG_TIME                  0x00000002
  378. #define MD_EXTLOG_CLIENT_IP             0x00000004
  379. #define MD_EXTLOG_USERNAME              0x00000008
  380. #define MD_EXTLOG_SITE_NAME             0x00000010
  381. #define MD_EXTLOG_COMPUTER_NAME         0x00000020
  382. #define MD_EXTLOG_SERVER_IP             0x00000040
  383. #define MD_EXTLOG_METHOD                0x00000080
  384. #define MD_EXTLOG_URI_STEM              0x00000100
  385. #define MD_EXTLOG_URI_QUERY             0x00000200
  386. #define MD_EXTLOG_HTTP_STATUS           0x00000400
  387. #define MD_EXTLOG_WIN32_STATUS          0x00000800
  388. #define MD_EXTLOG_BYTES_SENT            0x00001000
  389. #define MD_EXTLOG_BYTES_RECV            0x00002000
  390. #define MD_EXTLOG_TIME_TAKEN            0x00004000
  391. #define MD_EXTLOG_SERVER_PORT           0x00008000
  392. #define MD_EXTLOG_USER_AGENT            0x00010000
  393. #define MD_EXTLOG_COOKIE                0x00020000
  394. #define MD_EXTLOG_REFERER               0x00040000
  395. #define MD_EXTLOG_PROTOCOL_VERSION      0x00080000
  396. #define MD_EXTLOG_HOST                  0x00100000
  397.  
  398.  
  399. #define MD_DEFAULT_EXTLOG_FIELDS        (MD_EXTLOG_CLIENT_IP | \
  400.                                          MD_EXTLOG_TIME      | \
  401.                                          MD_EXTLOG_METHOD    | \
  402.                                          MD_EXTLOG_URI_STEM  | \
  403.                                          MD_EXTLOG_HTTP_STATUS)
  404.  
  405. //
  406. // Custom Logging related attributes
  407. //
  408.  
  409. #define IIS_MD_LOGCUSTOM_BASE           4500
  410.  
  411. //
  412. // Custom Logging configuration attributes
  413. //
  414.  
  415. #define MD_LOGCUSTOM_PROPERTY_NAME      (IIS_MD_LOGCUSTOM_BASE+1 )
  416. #define MD_LOGCUSTOM_PROPERTY_HEADER    (IIS_MD_LOGCUSTOM_BASE+2 )
  417. #define MD_LOGCUSTOM_PROPERTY_ID        (IIS_MD_LOGCUSTOM_BASE+3 )
  418. #define MD_LOGCUSTOM_PROPERTY_MASK      (IIS_MD_LOGCUSTOM_BASE+4 )
  419. #define MD_LOGCUSTOM_PROPERTY_DATATYPE  (IIS_MD_LOGCUSTOM_BASE+5 )
  420. #define MD_LOGCUSTOM_SERVICES_STRING    (IIS_MD_LOGCUSTOM_BASE+6 )      // MultiSZ List of services that the property is applicable to.
  421.  
  422. #define MD_CPU_LOGGING_MASK             (IIS_MD_LOGCUSTOM_BASE+7 )
  423.  
  424. //
  425. // The values for MD_CPU_LOGGING_MASK are defined above.
  426. // See MD_CPU_ENABLE_EVENT, etc.
  427. //
  428.  
  429.  
  430. #define IIS_MD_LOGCUSTOM_LAST           MD_CPU_LOGGING_MASK
  431.  
  432. //
  433. // Valid values for Custom Logging's MD_LOGCUSTOM_PROPERTY_DATATYPE field
  434. //
  435.  
  436. #define MD_LOGCUSTOM_DATATYPE_INT       0
  437. #define MD_LOGCUSTOM_DATATYPE_UINT      1
  438. #define MD_LOGCUSTOM_DATATYPE_LONG      2
  439. #define MD_LOGCUSTOM_DATATYPE_ULONG     3
  440. #define MD_LOGCUSTOM_DATATYPE_FLOAT     4
  441. #define MD_LOGCUSTOM_DATATYPE_DOUBLE    5
  442. #define MD_LOGCUSTOM_DATATYPE_LPSTR     6
  443. #define MD_LOGCUSTOM_DATATYPE_LPWSTR    7
  444.  
  445.  
  446. //
  447. //  ISAPI Filter Notification Flags
  448. //
  449.  
  450. #define MD_NOTIFY_SECURE_PORT           0x00000001
  451. #define MD_NOTIFY_NONSECURE_PORT        0x00000002
  452.  
  453. #define MD_NOTIFY_READ_RAW_DATA         0x00008000
  454. #define MD_NOTIFY_PREPROC_HEADERS       0x00004000
  455. #define MD_NOTIFY_AUTHENTICATION        0x00002000
  456. #define MD_NOTIFY_URL_MAP               0x00001000
  457. #define MD_NOTIFY_ACCESS_DENIED         0x00000800
  458. #define MD_NOTIFY_SEND_RESPONSE         0x00000040
  459. #define MD_NOTIFY_SEND_RAW_DATA         0x00000400
  460. #define MD_NOTIFY_LOG                   0x00000200
  461. #define MD_NOTIFY_END_OF_REQUEST        0x00000080
  462. #define MD_NOTIFY_END_OF_NET_SESSION    0x00000100
  463.  
  464. //
  465. //  ISAPI Filter ordering flags
  466. //
  467.  
  468. #define MD_NOTIFY_ORDER_HIGH            0x00080000
  469. #define MD_NOTIFY_ORDER_MEDIUM          0x00040000
  470. #define MD_NOTIFY_ORDER_LOW             0x00020000
  471. #define MD_NOTIFY_ORDER_DEFAULT         MD_NOTIFY_ORDER_LOW
  472.  
  473. #define MD_NOTIFY_ORDER_MASK            (MD_NOTIFY_ORDER_HIGH   |    \
  474.                                          MD_NOTIFY_ORDER_MEDIUM |    \
  475.                                          MD_NOTIFY_ORDER_LOW)
  476.  
  477.  
  478. //
  479. //  These are FTP specific properties
  480. //
  481.  
  482. #define IIS_MD_FTP_BASE                 5000
  483.  
  484. #define MD_EXIT_MESSAGE                 (IIS_MD_FTP_BASE+1  )
  485. #define MD_GREETING_MESSAGE             (IIS_MD_FTP_BASE+2  )
  486. #define MD_MAX_CLIENTS_MESSAGE          (IIS_MD_FTP_BASE+3  )
  487. #define MD_MSDOS_DIR_OUTPUT             (IIS_MD_FTP_BASE+4  )
  488. #define MD_ALLOW_ANONYMOUS              (IIS_MD_FTP_BASE+5  )
  489. #define MD_ANONYMOUS_ONLY               (IIS_MD_FTP_BASE+6  )
  490. #define MD_LOG_ANONYMOUS                (IIS_MD_FTP_BASE+7  )
  491. #define MD_LOG_NONANONYMOUS             (IIS_MD_FTP_BASE+8  )
  492. #define MD_ALLOW_REPLACE_ON_RENAME      (IIS_MD_FTP_BASE+9  )
  493. #define MD_SHOW_4_DIGIT_YEAR            (IIS_MD_FTP_BASE+10 )
  494.  
  495.  
  496. //
  497. //  These are SSL specific properties
  498. //
  499.  
  500. #define IIS_MD_SSL_BASE                 5500
  501.  
  502. #define MD_SSL_PUBLIC_KEY               ( IIS_MD_SSL_BASE+0 )
  503. #define MD_SSL_PRIVATE_KEY              ( IIS_MD_SSL_BASE+1 )
  504. #define MD_SSL_KEY_PASSWORD             ( IIS_MD_SSL_BASE+2 )
  505. #define MD_SSL_KEY_REQUEST              ( IIS_MD_SSL_BASE+3 )
  506.  
  507. //
  508. // These are server certificate properties
  509. //
  510. //
  511. // These are Certificate Trust List properties
  512. //
  513.  
  514. //
  515. // Metabase property that defines whether to use DS mapper or not
  516. //
  517. #define MD_SSL_USE_DS_MAPPER            ( IIS_MD_SSL_BASE+19 )
  518.  
  519.  
  520. //
  521. // Metabase properties that are used by the CertWiz ActiveX control, that
  522. // is used for the Certificate/CTL UI management tool
  523. //
  524.  
  525. //
  526. // Metabase properties used for Fortezza certificates
  527. //
  528.  
  529. //
  530. // Metabase properties that are used by the CertWiz ActiveX control to keep
  531. // track of the user's entry history, and whether DEBUG is enabled.  We keep
  532. // these private properties on a per VS basis.
  533. //
  534.  
  535. //  File and Directory related properties - these should be added in the
  536. //  metabase with a user type of IIS_MD_UT_FILE
  537. //
  538.  
  539. #define IIS_MD_FILE_PROP_BASE           6000
  540.  
  541. #define MD_AUTHORIZATION                (IIS_MD_FILE_PROP_BASE )
  542. #define MD_REALM                        (IIS_MD_FILE_PROP_BASE+1 )
  543. #define MD_HTTP_EXPIRES                 (IIS_MD_FILE_PROP_BASE+2 )
  544. #define MD_HTTP_PICS                    (IIS_MD_FILE_PROP_BASE+3 )
  545. #define MD_HTTP_CUSTOM                  (IIS_MD_FILE_PROP_BASE+4 )
  546. #define MD_DIRECTORY_BROWSING           (IIS_MD_FILE_PROP_BASE+5 )
  547. #define MD_DEFAULT_LOAD_FILE            (IIS_MD_FILE_PROP_BASE+6 )
  548. #define MD_CUSTOM_ERROR                 (IIS_MD_FILE_PROP_BASE+8 )
  549. #define MD_FOOTER_DOCUMENT              (IIS_MD_FILE_PROP_BASE+9 )
  550. #define MD_FOOTER_ENABLED               (IIS_MD_FILE_PROP_BASE+10 )
  551. #define MD_HTTP_REDIRECT                (IIS_MD_FILE_PROP_BASE+11 )
  552. #define MD_DEFAULT_LOGON_DOMAIN         (IIS_MD_FILE_PROP_BASE+12 )
  553. #define MD_LOGON_METHOD                 (IIS_MD_FILE_PROP_BASE+13 )
  554. #define MD_SCRIPT_MAPS                  (IIS_MD_FILE_PROP_BASE+14 )
  555. #define MD_MIME_MAP                     (IIS_MD_FILE_PROP_BASE+15 )
  556. #define MD_ACCESS_PERM                  (IIS_MD_FILE_PROP_BASE+16 )
  557. #define MD_IP_SEC                       (IIS_MD_FILE_PROP_BASE+19 )
  558. #define MD_ANONYMOUS_USER_NAME          (IIS_MD_FILE_PROP_BASE+20 )
  559. #define MD_ANONYMOUS_PWD                (IIS_MD_FILE_PROP_BASE+21 )
  560. #define MD_ANONYMOUS_USE_SUBAUTH        (IIS_MD_FILE_PROP_BASE+22 )
  561. #define MD_DONT_LOG                     (IIS_MD_FILE_PROP_BASE+23 )
  562. #define MD_ADMIN_ACL                    (IIS_MD_FILE_PROP_BASE+27 )
  563. #define MD_SSI_EXEC_DISABLED            (IIS_MD_FILE_PROP_BASE+28 )
  564. #define MD_DO_REVERSE_DNS               (IIS_MD_FILE_PROP_BASE+29 )
  565. #define MD_SSL_ACCESS_PERM              (IIS_MD_FILE_PROP_BASE+30 )
  566. #define MD_AUTHORIZATION_PERSISTENCE    (IIS_MD_FILE_PROP_BASE+31 )
  567. #define MD_NTAUTHENTICATION_PROVIDERS   (IIS_MD_FILE_PROP_BASE+32 )
  568. #define MD_SCRIPT_TIMEOUT               (IIS_MD_FILE_PROP_BASE+33 )
  569. #define MD_CACHE_EXTENSIONS             (IIS_MD_FILE_PROP_BASE+34 )
  570. #define MD_CREATE_PROCESS_AS_USER       (IIS_MD_FILE_PROP_BASE+35 )
  571. #define MD_CREATE_PROC_NEW_CONSOLE      (IIS_MD_FILE_PROP_BASE+36 )
  572. #define MD_POOL_IDC_TIMEOUT             (IIS_MD_FILE_PROP_BASE+37 )
  573. #define MD_ALLOW_KEEPALIVES             (IIS_MD_FILE_PROP_BASE+38 )
  574. #define MD_IS_CONTENT_INDEXED           (IIS_MD_FILE_PROP_BASE+39 )
  575. #define MD_CC_NO_CACHE                  (IIS_MD_FILE_PROP_BASE+41 )
  576. #define MD_CC_MAX_AGE                   (IIS_MD_FILE_PROP_BASE+42 )
  577. #define MD_CC_OTHER                     (IIS_MD_FILE_PROP_BASE+43 )
  578. #define MD_REDIRECT_HEADERS             (IIS_MD_FILE_PROP_BASE+44 )
  579. #define MD_UPLOAD_READAHEAD_SIZE        (IIS_MD_FILE_PROP_BASE+45 )
  580. #define MD_PUT_READ_SIZE                (IIS_MD_FILE_PROP_BASE+46 )
  581.  
  582.  
  583. #define ASP_MD_SERVER_BASE                  7000
  584.  
  585. #define MD_ASP_BUFFERINGON                  (ASP_MD_SERVER_BASE + 0)
  586. #define MD_ASP_LOGERRORREQUESTS             (ASP_MD_SERVER_BASE + 1)
  587. #define MD_ASP_SCRIPTERRORSSENTTOBROWSER    (ASP_MD_SERVER_BASE + 2)
  588. #define MD_ASP_SCRIPTERRORMESSAGE           (ASP_MD_SERVER_BASE + 3)
  589. #define MD_ASP_SCRIPTFILECACHESIZE          (ASP_MD_SERVER_BASE + 4)
  590. #define MD_ASP_SCRIPTENGINECACHEMAX         (ASP_MD_SERVER_BASE + 5)
  591. #define MD_ASP_SCRIPTTIMEOUT                (ASP_MD_SERVER_BASE + 6)
  592. #define MD_ASP_SESSIONTIMEOUT               (ASP_MD_SERVER_BASE + 7)
  593. #define MD_ASP_ENABLEPARENTPATHS            (ASP_MD_SERVER_BASE + 8)
  594. #define MD_ASP_MEMFREEFACTOR                (ASP_MD_SERVER_BASE + 9)    // OBSOLETE
  595. #define MD_ASP_MINUSEDBLOCKS                (ASP_MD_SERVER_BASE + 10)   // OBSOLETE
  596. #define MD_ASP_ALLOWSESSIONSTATE            (ASP_MD_SERVER_BASE + 11)
  597. #define MD_ASP_SCRIPTLANGUAGE               (ASP_MD_SERVER_BASE + 12)
  598. #define MD_ASP_QUEUETIMEOUT                 (ASP_MD_SERVER_BASE + 13)
  599. #define MD_ASP_ALLOWOUTOFPROCCOMPONENTS     (ASP_MD_SERVER_BASE + 14)
  600. #define MD_ASP_ALLOWOUTOFPROCCMPNTS         (MD_ASP_ALLOWOUTOFPROCCOMPONENTS)   // Deprecated.  Use MD_ASP_ALLOWOUTOFPROCCMPNTS
  601. #define MD_ASP_EXCEPTIONCATCHENABLE         (ASP_MD_SERVER_BASE + 15)
  602. #define MD_ASP_CODEPAGE                     (ASP_MD_SERVER_BASE + 16)
  603. #define MD_ASP_SCRIPTLANGUAGELIST           (ASP_MD_SERVER_BASE + 17)
  604. #define MD_ASP_ENABLESERVERDEBUG            (ASP_MD_SERVER_BASE + 18)
  605. #define MD_ASP_ENABLECLIENTDEBUG            (ASP_MD_SERVER_BASE + 19)
  606. #define MD_ASP_TRACKTHREADINGMODEL          (ASP_MD_SERVER_BASE + 20)
  607. // added for IIS 5.0
  608. #define MD_ASP_ENABLEASPHTMLFALLBACK        (ASP_MD_SERVER_BASE + 21)
  609. #define MD_ASP_ENABLECHUNKEDENCODING        (ASP_MD_SERVER_BASE + 22)
  610. #define MD_ASP_ENABLETYPELIBCACHE           (ASP_MD_SERVER_BASE + 23)
  611. #define MD_ASP_ERRORSTONTLOG                (ASP_MD_SERVER_BASE + 24)
  612. #define MD_ASP_PROCESSORTHREADMAX           (ASP_MD_SERVER_BASE + 25)
  613. #define MD_ASP_REQEUSTQUEUEMAX              (ASP_MD_SERVER_BASE + 26)
  614. #define MD_ASP_ENABLEAPPLICATIONRESTART     (ASP_MD_SERVER_BASE + 27)
  615. #define MD_ASP_QUEUECONNECTIONTESTTIME      (ASP_MD_SERVER_BASE + 28)
  616. #define MD_ASP_SESSIONMAX                   (ASP_MD_SERVER_BASE + 29)
  617. // thread gate
  618. #define MD_ASP_THREADGATEENABLED            (ASP_MD_SERVER_BASE + 30)
  619. #define MD_ASP_THREADGATETIMESLICE          (ASP_MD_SERVER_BASE + 31)
  620. #define MD_ASP_THREADGATESLEEPDELAY         (ASP_MD_SERVER_BASE + 32)
  621. #define MD_ASP_THREADGATESLEEPMAX           (ASP_MD_SERVER_BASE + 33)
  622. #define MD_ASP_THREADGATELOADLOW            (ASP_MD_SERVER_BASE + 34)
  623. #define MD_ASP_THREADGATELOADHIGH           (ASP_MD_SERVER_BASE + 35)
  624.  
  625. #define MD_ASP_ID_LAST                      (ASP_MD_SERVER_BASE + 35)
  626.  
  627.  
  628. //
  629. //  Valid values for WAM
  630. //
  631. #define WAM_MD_SERVER_BASE                  7500
  632.  
  633. #define MD_WAM_USER_NAME                (WAM_MD_SERVER_BASE+1)
  634. #define MD_WAM_PWD                      (WAM_MD_SERVER_BASE+2)
  635.  
  636. //
  637. //  Valid values for MD_AUTHORIZATION
  638. //
  639.  
  640. #define MD_AUTH_ANONYMOUS               0x00000001
  641. #define MD_AUTH_BASIC                   0x00000002
  642. #define MD_AUTH_NT                      0x00000004    // Use NT auth provider (like NTLM)
  643.  
  644. //
  645. //  Valid values for MD_AUTHORIZATION_PERSISTENCE
  646. //
  647.  
  648.  
  649. #define MD_AUTH_SINGLEREQUEST                   0x00000040
  650. #define MD_AUTH_SINGLEREQUESTIFPROXY            0x00000080
  651. #define MD_AUTH_SINGLEREQUESTALWAYSIFPROXY      0x00000100
  652.  
  653. //
  654. //  Valid values for MD_ACCESS_PERM
  655. //
  656.  
  657. #define MD_ACCESS_READ                  0x00000001    // Allow for Read
  658. #define MD_ACCESS_WRITE                 0x00000002    // Allow for Write
  659. #define MD_ACCESS_EXECUTE               0x00000004    // Allow for Execute
  660. #define MD_ACCESS_SOURCE                0x00000010    // Apply access mask to source
  661. #define MD_ACCESS_SCRIPT                0x00000200    // Allow for Script execution
  662. #define MD_ACCESS_NO_REMOTE_WRITE       0x00000400    // Local host access only
  663. #define MD_ACCESS_NO_REMOTE_READ        0x00001000    // Local host access only
  664. #define MD_ACCESS_NO_REMOTE_EXECUTE     0x00002000    // Local host access only
  665. #define MD_ACCESS_NO_REMOTE_SCRIPT      0x00004000    // Local host access only
  666.  
  667. #define MD_NONSLL_ACCESS_MASK           (MD_ACCESS_READ|                \
  668.                                          MD_ACCESS_WRITE|               \
  669.                                          MD_ACCESS_EXECUTE|             \
  670.                                          MD_ACCESS_SOURCE|              \
  671.                                          MD_ACCESS_SCRIPT|              \
  672.                                          MD_ACCESS_NO_REMOTE_READ|      \
  673.                                          MD_ACCESS_NO_REMOTE_WRITE|     \
  674.                                          MD_ACCESS_NO_REMOTE_EXECUTE|   \
  675.                                          MD_ACCESS_NO_REMOTE_SCRIPT     \
  676.                                          )
  677. //
  678. //  Valid values for MD_SSL_ACCESS_PERM
  679. //
  680.  
  681. #define MD_ACCESS_SSL                   0x00000008    // Require SSL
  682. #define MD_ACCESS_NEGO_CERT             0x00000020    // Allow client SSL certs
  683. #define MD_ACCESS_REQUIRE_CERT          0x00000040    // Require client SSL certs
  684. #define MD_ACCESS_MAP_CERT              0x00000080    // Map SSL cert to NT account
  685. #define MD_ACCESS_SSL128                0x00000100    // Require 128 bit SSL
  686.  
  687. #define MD_SSL_ACCESS_MASK              (MD_ACCESS_SSL|\
  688.                                          MD_ACCESS_NEGO_CERT|\
  689.                                          MD_ACCESS_REQUIRE_CERT|\
  690.                                          MD_ACCESS_MAP_CERT|\
  691.                                          MD_ACCESS_SSL128)
  692.  
  693. #define MD_ACCESS_MASK                  0x00007fff
  694.  
  695. //
  696. //  Valid values for MD_DIRECTORY_BROWSING
  697. //
  698.  
  699. #define MD_DIRBROW_SHOW_DATE            0x00000002
  700. #define MD_DIRBROW_SHOW_TIME            0x00000004
  701. #define MD_DIRBROW_SHOW_SIZE            0x00000008
  702. #define MD_DIRBROW_SHOW_EXTENSION       0x00000010
  703. #define MD_DIRBROW_LONG_DATE            0x00000020
  704.  
  705. #define MD_DIRBROW_ENABLED              0x80000000  // Allow directory browsing
  706. #define MD_DIRBROW_LOADDEFAULT          0x40000000  // Load default doc if exists
  707.  
  708. #define MD_DIRBROW_MASK                 (MD_DIRBROW_SHOW_DATE      |    \
  709.                                          MD_DIRBROW_SHOW_TIME      |    \
  710.                                          MD_DIRBROW_SHOW_SIZE      |    \
  711.                                          MD_DIRBROW_SHOW_EXTENSION |    \
  712.                                          MD_DIRBROW_LONG_DATE      |    \
  713.                                          MD_DIRBROW_LOADDEFAULT    |    \
  714.                                          MD_DIRBROW_ENABLED)
  715.  
  716.  
  717.  
  718. //
  719. //  Valid values for MD_LOGON_METHOD
  720. //
  721.  
  722. #define MD_LOGON_INTERACTIVE        0
  723. #define MD_LOGON_BATCH              1
  724. #define MD_LOGON_NETWORK            2
  725. #define MD_LOGON_NETWORK_CLEARTEXT  3
  726.  
  727. //
  728. // Valid values for MD_NOTIFY_EXAUTH
  729. //
  730.  
  731. #define MD_NOTIFEXAUTH_NTLMSSL  1
  732.  
  733. //
  734. //  Valid values for MD_FILTER_STATE
  735. //
  736.  
  737. #define MD_FILTER_STATE_LOADED          1
  738. #define MD_FILTER_STATE_UNLOADED        4
  739.  
  740. //
  741. //  Valid values for MD_SERVER_STATE
  742. //
  743.  
  744. #define MD_SERVER_STATE_STARTING        1
  745. #define MD_SERVER_STATE_STARTED         2
  746. #define MD_SERVER_STATE_STOPPING        3
  747. #define MD_SERVER_STATE_STOPPED         4
  748. #define MD_SERVER_STATE_PAUSING         5
  749. #define MD_SERVER_STATE_PAUSED          6
  750. #define MD_SERVER_STATE_CONTINUING      7
  751.  
  752. //
  753. //  Valid values for MD_SERVER_COMMAND
  754. //
  755.  
  756. #define MD_SERVER_COMMAND_START         1
  757. #define MD_SERVER_COMMAND_STOP          2
  758. #define MD_SERVER_COMMAND_PAUSE         3
  759. #define MD_SERVER_COMMAND_CONTINUE      4
  760.  
  761. //
  762. //  Valid values for MD_SERVER_SIZE
  763. //
  764.  
  765. #define MD_SERVER_SIZE_SMALL            0
  766. #define MD_SERVER_SIZE_MEDIUM           1
  767. #define MD_SERVER_SIZE_LARGE            2
  768.  
  769. //
  770. // Valid values for MD_SERVER_CONFIG_INFO
  771. //
  772.  
  773. #define MD_SERVER_CONFIG_SSL_40         0x00000001
  774. #define MD_SERVER_CONFIG_SSL_128        0x00000002
  775. #define MD_SERVER_CONFIG_ALLOW_ENCRYPT  0x00000004
  776. #define MD_SERVER_CONFIG_AUTO_PW_SYNC   0x00000008
  777.  
  778. #define MD_SERVER_CONFIGURATION_MASK   (MD_SERVER_CONFIG_SSL_40       | \
  779.                                         MD_SERVER_CONFIG_SSL_128      | \
  780.                                         MD_SERVER_CONFIG_ENCRYPT      | \
  781.                                         MD_SERVER_CONFIG_AUTO_PW_SYNC)
  782.  
  783. //
  784. // Valid values for MD_SCRIPT_MAPS flag field
  785. //
  786.  
  787. #define MD_SCRIPTMAPFLAG_SCRIPT                     0x00000001
  788. #define MD_SCRIPTMAPFLAG_CHECK_PATH_INFO            0x00000004
  789.  
  790. #ifdef REMOVE   // SteveBr
  791. //
  792. //  Bogus value - do not use
  793. //
  794. #define MD_SCRIPTMAPFLAG_ALLOWED_ON_READ_DIR        0x00000001
  795. #endif // REMOVE
  796.  
  797.  
  798. //
  799. // Valid values for MD_AUTH_CHANGE_ENABLE
  800. //
  801.  
  802. #define MD_AUTH_CHANGE_UNSECURE     0x00000001
  803. #define MD_AUTH_CHANGE_DISABLE      0x00000002
  804. #define MD_AUTH_ADVNOTIFY_DISABLE   0x00000004
  805.  
  806. //
  807. // Valid values for MD_NET_LOGON_WKS
  808. //
  809.  
  810. #define MD_NETLOGON_WKS_NONE        0
  811. #define MD_NETLOGON_WKS_IP          1
  812. #define MD_NETLOGON_WKS_DNS         2
  813.  
  814. //
  815. //  Valide substatus errors for MD_CUSTOM_ERROR
  816. //
  817.  
  818. #define MD_ERROR_SUB401_LOGON                   1
  819. #define MD_ERROR_SUB401_LOGON_CONFIG            2
  820. #define MD_ERROR_SUB401_LOGON_ACL               3
  821. #define MD_ERROR_SUB401_FILTER                  4
  822. #define MD_ERROR_SUB401_APPLICATION             5
  823.  
  824. #define MD_ERROR_SUB403_EXECUTE_ACCESS_DENIED   1
  825. #define MD_ERROR_SUB403_READ_ACCESS_DENIED      2
  826. #define MD_ERROR_SUB403_WRITE_ACCESS_DENIED     3
  827. #define MD_ERROR_SUB403_SSL_REQUIRED            4
  828. #define MD_ERROR_SUB403_SSL128_REQUIRED         5
  829. #define MD_ERROR_SUB403_ADDR_REJECT             6
  830. #define MD_ERROR_SUB403_CERT_REQUIRED           7
  831. #define MD_ERROR_SUB403_SITE_ACCESS_DENIED      8
  832. #define MD_ERROR_SUB403_TOO_MANY_USERS          9
  833. #define MD_ERROR_SUB403_INVALID_CNFG           10
  834. #define MD_ERROR_SUB403_PWD_CHANGE             11
  835. #define MD_ERROR_SUB403_MAPPER_DENY_ACCESS     12
  836. #define MD_ERROR_SUB403_CERT_REVOKED           13
  837. #define MD_ERROR_SUB403_DIR_LIST_DENIED        14
  838. #define MD_ERROR_SUB403_CAL_EXCEEDED           15
  839. #define MD_ERROR_SUB403_CERT_BAD               16
  840. #define MD_ERROR_SUB403_CERT_TIME_INVALID      17
  841.  
  842. #define MD_ERROR_SUB404_SITE_NOT_FOUND          1
  843.  
  844. #define MD_ERROR_SUB502_TIMEOUT                 1
  845. #define MD_ERROR_SUB502_PREMATURE_EXIT          2
  846.  
  847. #define MD_ERROR_SUB503_CPU_LIMIT               1
  848.  
  849. //
  850. // Valid access rights for ACE entries in MD_ADMIN_ACL
  851. //
  852.  
  853. #define MD_ACR_READ                 0x00000001
  854. #define MD_ACR_WRITE                0x00000002
  855. #define MD_ACR_RESTRICTED_WRITE     0x00000020
  856. #define MD_ACR_UNSECURE_PROPS_READ  0x00000080
  857. #define MD_ACR_ENUM_KEYS            0x00000008
  858. #define MD_ACR_WRITE_DAC            0x00040000
  859.  
  860.  
  861. //
  862. // MD_IP_SEC binary format description
  863. //
  864.  
  865. /*
  866.  
  867.   This object is composed of 4 lists : 2 lists ( deny & grant ) of network addresses,
  868.   the only allowed family is AF_INET.
  869.   Each of this list is composed of sublists, one for each ( network address family,
  870.   significant subnet mask ) combination. The significant subnet mask is stored as
  871.   ( number of bytes all 1 ( 0xff ), bitmask in last byte ).
  872.   This is followed by 2 lists ( deny & grant ) of DNS names. Each of these lists is
  873.   composed of sublists, based on then number of components in the DNS name
  874.   e.g. "microsoft.com" has 2 components, "www.msft.com" has 3.
  875.  
  876. Header:
  877.     SELFREFINDEX    iDenyAddr;      // address deny list
  878.                                     // points to ADDRESS_HEADER
  879.     SELFREFINDEX    iGrantAddr;     // address grant list
  880.                                     // points to ADDRESS_HEADER
  881.     SELFREFINDEX    iDenyName;      // DNS name deny list
  882.                                     // points to NAME_HEADER
  883.     SELFREFINDEX    iGrantName;     // DNS name grant list
  884.                                     // points to NAME_HEADER
  885.     DWORD           dwFlags;
  886.     DWORD           cRefSize;       // size of reference area ( in bytes )
  887.  
  888. ADDRESS_HEADER :
  889.     DWORD               cEntries;   // # of Entries[]
  890.     DWORD               cAddresses; // total # of addresses in all
  891.                                     // ADDRESS_LIST_ENTRY
  892.     ADDRESS_LIST_ENTRY  Entries[];
  893.  
  894. ADDRESS_LIST_ENTRY :
  895.     DWORD           iFamily;
  896.     DWORD           cAddresses;
  897.     DWORD           cFullBytes;
  898.     DWORD           LastByte;
  899.     SELFREFINDEX    iFirstAddress;  // points to array of addresses
  900.  
  901. NAME_HEADER :
  902.     DWORD           cEntries;
  903.     DWORD           cNames;         // total # of names for all Entries[]
  904.     NAME_LIST_ENTRY Entries[];
  905.  
  906. Name list entry :
  907.     DWORD           cComponents;    // # of DNS components
  908.     DWORD           cNames;
  909.     SELFREFINDEX    iName[];        // array of references to DNS names
  910.  
  911. This is followed by address arrays & names pointed to by iFirstAddress & iName
  912. Names are '\0' delimited
  913.  
  914. SELFREFINDEX is a DWORD offset from start of structure with high bit set to 1
  915.  
  916. */
  917.  
  918. //
  919. // Macros
  920. //
  921.  
  922. #define MD_SET_DATA_RECORD(_pMDR, _id, _attr, _utype, _dtype, _dlen, _pData) \
  923.             { \
  924.             (_pMDR)->dwMDIdentifier=(_id);      \
  925.             (_pMDR)->dwMDAttributes=(_attr);    \
  926.             (_pMDR)->dwMDUserType=(_utype);     \
  927.             (_pMDR)->dwMDDataType=(_dtype);     \
  928.             (_pMDR)->dwMDDataLen=(_dlen);       \
  929.             (_pMDR)->pbMDData=(LPBYTE)(_pData); \
  930.             }
  931.  
  932. //
  933. // IIS ADSI Admin Object class names
  934. //
  935.  
  936. #define IIS_CLASS_COMPUTER             "IIsComputer"
  937. #define IIS_CLASS_WEB_SERVICE          "IIsWebService"
  938. #define IIS_CLASS_WEB_SERVER           "IIsWebServer"
  939. #define IIS_CLASS_WEB_INFO             "IIsWebInfo"
  940. #define IIS_CLASS_WEB_DIR              "IIsWebDirectory"
  941. #define IIS_CLASS_WEB_VDIR             "IIsWebVirtualDir"
  942. #define IIS_CLASS_WEB_FILE             "IIsWebFile"
  943. #define IIS_CLASS_FTP_SERVICE          "IIsFtpService"
  944. #define IIS_CLASS_FTP_SERVER           "IIsFtpServer"
  945. #define IIS_CLASS_FTP_INFO             "IIsFtpInfo"
  946. #define IIS_CLASS_FTP_VDIR             "IIsFtpVirtualDir"
  947. #define IIS_CLASS_FILTERS              "IIsFilters"
  948. #define IIS_CLASS_FILTER               "IIsFilter"
  949. #define IIS_CLASS_LOG_MODULES          "IIsLogModules"
  950. #define IIS_CLASS_LOG_MODULE           "IIsLogModule"
  951. #define IIS_CLASS_MIMEMAP              "IIsMimeMap"
  952. #define IIS_CLASS_CERTMAPPER           "IIsCertMapper"
  953. #define IIS_CLASS_COMPRESS_SCHEMES     "IIsCompressionSchemes"
  954. #define IIS_CLASS_COMPRESS_SCHEME      "IIsCompressionScheme"
  955.  
  956. #define IIS_CLASS_COMPUTER_W           L"IIsComputer"
  957. #define IIS_CLASS_WEB_SERVICE_W        L"IIsWebService"
  958. #define IIS_CLASS_WEB_SERVER_W         L"IIsWebServer"
  959. #define IIS_CLASS_WEB_INFO_W           L"IIsWebInfo"
  960. #define IIS_CLASS_WEB_DIR_W            L"IIsWebDirectory"
  961. #define IIS_CLASS_WEB_VDIR_W           L"IIsWebVirtualDir"
  962. #define IIS_CLASS_WEB_FILE_W           L"IIsWebFile"
  963. #define IIS_CLASS_FTP_SERVICE_W        L"IIsFtpService"
  964. #define IIS_CLASS_FTP_SERVER_W         L"IIsFtpServer"
  965. #define IIS_CLASS_FTP_INFO_W           L"IIsFtpInfo"
  966. #define IIS_CLASS_FTP_VDIR_W           L"IIsFtpVirtualDir"
  967. #define IIS_CLASS_FILTERS_W            L"IIsFilters"
  968. #define IIS_CLASS_FILTER_W             L"IIsFilter"
  969. #define IIS_CLASS_LOG_MODULES_W        L"IIsLogModules"
  970. #define IIS_CLASS_LOG_MODULE_W         L"IIsLogModule"
  971. #define IIS_CLASS_MIMEMAP_W            L"IIsMimeMap"
  972. #define IIS_CLASS_CERTMAPPER_W         L"IIsCertMapper"
  973. #define IIS_CLASS_COMPRESS_SCHEMES_W   L"IIsCompressionSchemes"
  974. #define IIS_CLASS_COMPRESS_SCHEME_W    L"IIsCompressionScheme"
  975.  
  976. #pragma option pop /*P_O_Pop*/
  977. #endif // _IISCNFG_H_
  978.