home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / IISCNFG.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  28.0 KB  |  747 lines

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