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.

647 lines
23 KiB

  1. /*++
  2. Copyright (c) 1997-1999 Microsoft Corporation
  3. Module Name:
  4. config.h
  5. Abstract:
  6. Config parameters for the NT File Replication Service.
  7. All configuration parameters that come from the registry are defined in a
  8. Key Context table in config.c. The struct FRS_REGISTRY_KEY, defined
  9. below, defines the data format for each table entry. An extensive list
  10. of flags defined below govern the processing of registry keys, e.g.
  11. generate and event log entry or not, range check the value or not, allow
  12. a builtin default value or not, etc.
  13. To add a new registry key to FRS do the following:
  14. 1. Add key code to the FRS_REG_KEY_CODE enum below.
  15. 2. Create a new entry in the Key Context table in config.c
  16. Look at examples for other keys that may have similar properties
  17. to your new key.
  18. 3. Add calls to CfgRegxxx functions to read or write the key.
  19. If you set the Key Context up to supply a default value the call to the
  20. CfgRegReadxxx functions will always return a usable value. In addition if
  21. the appropriate flags are set these functions will put a message in the
  22. FRS event log when the user has specified a bad value for the key or a
  23. required key was not found. The CfgRegxxx functions also put error
  24. messages in the Debug Trace Log so in many cases the caller does not need
  25. to test the return status to log an error or use a default or add code to
  26. range check a parameter.
  27. Author:
  28. David Orbits (davidor) - 4-Mar-1997
  29. Major Revision July-1999.
  30. Revision History:
  31. --*/
  32. #ifdef __cplusplus
  33. extern "C" {
  34. #endif
  35. typedef struct _FRS_REGISTRY_KEY {
  36. PWCHAR KeyName; // Registry key string.
  37. PWCHAR ValueName; // Name of registry value.
  38. DWORD Units; // UNITS_DAYS, UNITS_HOURS, etc.
  39. DWORD RegValueType; // Registry Data type for value
  40. DWORD DataValueType; // FRS data type code from FRS_DATA_TYPES for conversion.
  41. DWORD ValueMin; // Minimum data value, or string len
  42. DWORD ValueMax; // Maximum Data value, or string len
  43. DWORD ValueDefault; // Default data value if not present.
  44. DWORD EventCode; // Event log error code
  45. PWCHAR StringDefault; // Default value for string types.
  46. LONG FrsKeyCode; // Frs code name for this key.
  47. ULONG Flags; // See below.
  48. } FRS_REGISTRY_KEY, *PFRS_REGISTRY_KEY;
  49. #define EVENT_FRS_NONE 0
  50. //
  51. // Registry key flag definitions.
  52. //
  53. #define FRS_RKF_KEY_PRESENT 0x00000001 // Key is present in reg.
  54. #define FRS_RKF_VALUE_PRESENT 0x00000002 // Value is present in reg.
  55. #define FRS_RKF_DISPLAY_ERROR 0x00000004 // Put a message in the log
  56. #define FRS_RKF_LOG_EVENT 0x00000008 // put event in error log.
  57. #define FRS_RKF_READ_AT_START 0x00000010 // Read the key at startup
  58. #define FRS_RKF_READ_AT_POLL 0x00000020 // Read the key during polling
  59. #define FRS_RKF_RANGE_CHECK 0x00000040 // Range check the value read
  60. #define FRS_RKF_SYNTAX_CHECK 0x00000080 // Perform syntax check using DataValueType
  61. #define FRS_RKF_KEY_MUST_BE_PRESENT 0x00000100 // Key must be present
  62. #define FRS_RKF_VALUE_MUST_BE_PRESENT 0x00000200 // Value must be present
  63. #define FRS_RKF_OK_TO_USE_DEFAULT 0x00000400 // Use default val if not present or out of range
  64. #define FRS_RKF_FORCE_DEFAULT_VALUE 0x00000800 // Return default on read, Write default to registry on a write
  65. #define FRS_RKF_DEBUG_MODE_ONLY 0x00001000 // Use key only if in debug mode
  66. #define FRS_RKF_TEST_MODE_ONLY 0x00002000 // Use key only if running in special Test mode
  67. #define FRS_RKF_API_ACCESS_CHECK_KEY 0x00004000 // Key used to make API enable checks
  68. #define FRS_RKF_CREATE_KEY 0x00008000 // Create Key if it doesn't exist.
  69. #define FRS_RKF_KEEP_EXISTING_VALUE 0x00010000 // On a write, suppress the write if a value exists.
  70. #define FRS_RKF_KEY_ACCCHK_READ 0x00020000 // Perform only a read access check of fully formed key path. No key create.
  71. #define FRS_RKF_KEY_ACCCHK_WRITE 0x00040000 // Perform only a write access check of fully formed key path. No key create.
  72. #define FRS_RKF_RANGE_SATURATE 0x00080000 // If value is out of range then use either Min or Max. (currently only for CfgRegWriteDWord)
  73. #define FRS_RKF_DEBUG_PARAM 0x02000000 // This key is a debug paramter
  74. typedef enum _FRS_DATA_UNITS {
  75. UNITS_NONE = 0,
  76. UNITS_SECONDS,
  77. UNITS_MINUTES,
  78. UNITS_HOURS,
  79. UNITS_DAYS,
  80. UNITS_MILLISEC,
  81. UNITS_KBYTES,
  82. UNITS_BYTES,
  83. UNITS_MBYTES,
  84. FRS_DATA_UNITS_MAX
  85. } FRS_DATA_UNITS;
  86. //
  87. // The FrsReg... apis take a key code from the list below. The key table
  88. // is searched for the entry with the corresponding key code to provide the
  89. // context for the registry key operation.
  90. // PERF: at startup sort the entries in the key table by key code so the
  91. // key entry search becomes an array index calc.
  92. //
  93. typedef enum _FRS_REG_KEY_CODE {
  94. FKC_END_OF_TABLE = 0,
  95. //
  96. // Service Debug Keys
  97. //
  98. FKC_DEBUG_ASSERT_FILES,
  99. FKC_DEBUG_ASSERT_SECONDS,
  100. FKC_DEBUG_ASSERT_SHARE,
  101. FKC_DEBUG_BREAK,
  102. FKC_DEBUG_COPY_LOG_FILES,
  103. FKC_DEBUG_DBS_OUT_OF_SPACE,
  104. FKC_DEBUG_DBS_OUT_OF_SPACE_TRIGGER,
  105. FKC_DEBUG_DISABLE,
  106. FKC_DEBUG_LOG_FILE,
  107. FKC_DEBUG_LOG_FILES,
  108. FKC_DEBUG_LOG_FLUSH_INTERVAL,
  109. FKC_DEBUG_LOG_SEVERITY,
  110. FKC_DEBUG_MAX_LOG,
  111. FKC_DEBUG_MEM,
  112. FKC_DEBUG_MEM_COMPACT,
  113. FKC_DEBUG_PROFILE,
  114. FKC_DEBUG_QUEUES,
  115. FKC_DEBUG_RECIPIENTS,
  116. FKC_DEBUG_RESTART_SECONDS,
  117. FKC_DEBUG_SEVERITY,
  118. FKC_DEBUG_SUPPRESS,
  119. FKC_DEBUG_SYSTEMS,
  120. FKC_DEBUG_BUILDLAB,
  121. //
  122. // Service Config keys
  123. //
  124. FKC_COMM_TIMEOUT,
  125. FKC_DIR_EXCL_FILTER_LIST,
  126. FKC_DIR_INCL_FILTER_LIST,
  127. FKC_DS_POLLING_LONG_INTERVAL,
  128. FKC_DS_POLLING_SHORT_INTERVAL,
  129. FKC_ENUMERATE_DIRECTORY_SIZE,
  130. FKC_FILE_EXCL_FILTER_LIST,
  131. FKC_FILE_INCL_FILTER_LIST,
  132. FKC_FRS_MESSAGE_FILE_PATH,
  133. FKC_FRS_MUTUAL_AUTHENTICATION_IS,
  134. FKC_MAX_JOIN_RETRY,
  135. FKC_MAX_REPLICA_THREADS,
  136. FKC_MAX_RPC_SERVER_THREADS,
  137. FKC_MAX_INSTALLCS_THREADS,
  138. FKC_MAX_STAGE_GENCS_THREADS,
  139. FKC_MAX_STAGE_FETCHCS_THREADS,
  140. FKC_MAX_INITSYNCCS_THREADS,
  141. FKC_MIN_JOIN_RETRY,
  142. FKC_PARTNER_CLOCK_SKEW,
  143. FKC_RECONCILE_WINDOW,
  144. FKC_INLOG_RETRY_TIME,
  145. FKC_CO_AGING_DELAY,
  146. FKC_OUTLOG_REPEAT_INTERVAL,
  147. FKC_PROMOTION_TIMEOUT,
  148. FKC_REPLICA_START_TIMEOUT,
  149. FKC_REPLICA_TOMBSTONE,
  150. FKC_SHUTDOWN_TIMEOUT,
  151. FKC_SNDCS_MAXTHREADS_PAR,
  152. FKC_STAGING_LIMIT,
  153. FKC_VVJOIN_LIMIT,
  154. FKC_VVJOIN_TIMEOUT,
  155. FKC_WORKING_DIRECTORY,
  156. FKC_DBLOG_DIRECTORY,
  157. FKC_NTFS_JRNL_SIZE,
  158. FKC_MAX_NUMBER_REPLICA_SETS,
  159. FKC_MAX_NUMBER_JET_SESSIONS,
  160. FKC_OUT_LOG_CO_QUOTA,
  161. FKC_PRESERVE_FILE_OID,
  162. FKC_DEBUG_DISABLE_COMPRESSION,
  163. FKC_DISABLE_COMPRESSION_STAGING_FILE, // OBSOLETE -- Remove this.
  164. FKC_LDAP_SEARCH_TIMEOUT_IN_MINUTES,
  165. FKC_LDAP_BIND_TIMEOUT_IN_SECONDS,
  166. FKC_COMPRESS_STAGING_FILES,
  167. //
  168. // Per Replica Set Keys
  169. //
  170. FKC_SETS_JET_PATH,
  171. FKC_SET_N_REPLICA_SET_NAME,
  172. FKC_SET_N_REPLICA_SET_ROOT,
  173. FKC_SET_N_REPLICA_SET_STAGE,
  174. FKC_SET_N_REPLICA_SET_TYPE,
  175. FKC_SET_N_DIR_EXCL_FILTER_LIST,
  176. FKC_SET_N_DIR_INCL_FILTER_LIST,
  177. FKC_SET_N_FILE_EXCL_FILTER_LIST,
  178. FKC_SET_N_FILE_INCL_FILTER_LIST,
  179. FKC_SET_N_REPLICA_SET_TOMBSTONED,
  180. FKC_SET_N_REPLICA_SET_COMMAND,
  181. FKC_SET_N_REPLICA_SET_PRIMARY,
  182. FKC_SET_N_REPLICA_SET_STATUS,
  183. FKC_CUMSET_SECTION_KEY,
  184. FKC_CUMSET_N_NUMBER_OF_PARTNERS,
  185. FKC_CUMSET_N_BURFLAGS,
  186. //
  187. // System Volume Keys
  188. //
  189. FKC_SYSVOL_READY,
  190. FKC_SYSVOL_SECTION_KEY,
  191. FKC_SYSVOL_INFO_COMMITTED,
  192. FKC_SET_N_SYSVOL_NAME,
  193. FKC_SET_N_SYSVOL_ROOT,
  194. FKC_SET_N_SYSVOL_STAGE,
  195. FKC_SET_N_SYSVOL_TYPE,
  196. FKC_SET_N_SYSVOL_DIR_EXCL_FILTER_LIST,
  197. FKC_SET_N_SYSVOL_DIR_INCL_FILTER_LIST,
  198. FKC_SET_N_SYSVOL_FILE_EXCL_FILTER_LIST,
  199. FKC_SET_N_SYSVOL_FILE_INCL_FILTER_LIST,
  200. FKC_SET_N_SYSVOL_COMMAND,
  201. FKC_SET_N_SYSVOL_PARENT,
  202. FKC_SET_N_SYSVOL_PRIMARY,
  203. FKC_SET_N_SYSVOL_STATUS,
  204. FKC_SYSVOL_SEEDING_N_PARENT,
  205. FKC_SYSVOL_SEEDING_N_RSNAME,
  206. FKC_SYSVOL_SEEDING_SECTION_KEY,
  207. //
  208. // Event Logging Keys
  209. //
  210. FKC_EVENTLOG_FILE,
  211. FKC_EVENTLOG_DISPLAY_FILENAME,
  212. FKC_EVENTLOG_EVENT_MSG_FILE,
  213. FKC_EVENTLOG_SOURCES,
  214. FKC_EVENTLOG_RETENTION,
  215. FKC_EVENTLOG_MAXSIZE,
  216. FKC_EVENTLOG_DISPLAY_NAMEID,
  217. FKC_EVENTLOG_TYPES_SUPPORTED,
  218. //
  219. // API Access Check Keys
  220. //
  221. FKC_ACCCHK_PERFMON_ENABLE,
  222. FKC_ACCCHK_PERFMON_RIGHTS,
  223. FKC_ACCCHK_GETDS_POLL_ENABLE,
  224. FKC_ACCCHK_GETDS_POLL_RIGHTS,
  225. FKC_ACCCHK_GET_INFO_ENABLE,
  226. FKC_ACCCHK_GET_INFO_RIGHTS,
  227. FKC_ACCCHK_SETDS_POLL_ENABLE,
  228. FKC_ACCCHK_SETDS_POLL_RIGHTS,
  229. FKC_ACCCHK_STARTDS_POLL_ENABLE,
  230. FKC_ACCCHK_STARTDS_POLL_RIGHTS,
  231. FKC_ACCESS_CHK_DCPROMO_ENABLE,
  232. FKC_ACCESS_CHK_DCPROMO_RIGHTS,
  233. //
  234. // Backup/Restore related keys.
  235. //
  236. FKC_BKUP_SECTION_KEY,
  237. FKC_BKUP_STOP_SECTION_KEY,
  238. FKC_BKUP_MV_SETS_SECTION_KEY,
  239. FKC_BKUP_MV_CUMSETS_SECTION_KEY,
  240. FKC_BKUP_STARTUP_GLOBAL_BURFLAGS,
  241. FKC_BKUP_STARTUP_SET_N_BURFLAGS,
  242. //
  243. // Perfmon related keys.
  244. //
  245. FKC_REPLICA_SET_FIRST_CTR,
  246. FKC_REPLICA_SET_FIRST_HELP,
  247. FKC_REPLICA_SET_LINKAGE_EXPORT,
  248. FKC_REPLICA_CXTION_FIRST_CTR,
  249. FKC_REPLICA_CXTION_FIRST_HELP,
  250. FKC_REPLICA_CXTION_LINKAGE_EXPORT,
  251. FRS_REG_KEY_CODE_MAX
  252. } FRS_REG_KEY_CODE;
  253. DWORD
  254. CfgRegReadDWord(
  255. IN FRS_REG_KEY_CODE KeyIndex,
  256. IN PWCHAR KeyArg1,
  257. IN ULONG Flags,
  258. OUT PULONG DataRet
  259. );
  260. DWORD
  261. CfgRegReadString(
  262. IN FRS_REG_KEY_CODE KeyIndex,
  263. IN PWCHAR KeyArg1,
  264. IN ULONG Flags,
  265. OUT PWSTR *pStrRet
  266. );
  267. DWORD
  268. CfgRegWriteDWord(
  269. IN FRS_REG_KEY_CODE KeyIndex,
  270. IN PWCHAR KeyArg1,
  271. IN ULONG Flags,
  272. IN ULONG NewData
  273. );
  274. DWORD
  275. CfgRegWriteString(
  276. IN FRS_REG_KEY_CODE KeyIndex,
  277. IN PWCHAR KeyArg1,
  278. IN ULONG Flags,
  279. IN PWSTR NewStr
  280. );
  281. DWORD
  282. CfgRegOpenKey(
  283. IN FRS_REG_KEY_CODE KeyIndex,
  284. IN PWCHAR KeyArg1,
  285. IN ULONG Flags,
  286. OUT HKEY *RethKey
  287. );
  288. PWCHAR
  289. CfgRegGetValueName(
  290. IN FRS_REG_KEY_CODE KeyIndex
  291. );
  292. DWORD
  293. CfgRegCheckEnable(
  294. IN FRS_REG_KEY_CODE KeyIndex,
  295. IN PWCHAR KeyArg1,
  296. IN ULONG Flags,
  297. OUT PBOOL Enabled
  298. );
  299. //
  300. // Following is the list keys defined for use by the FRS
  301. //
  302. #define SERVICE_ROOT L"System\\CurrentControlSet\\Services"
  303. #define SERVICE_NAME L"NtFrs"
  304. #define SERVICE_PRINCIPAL_NAME L"NtFrs-88f5d2bd-b646-11d2-a6d3-00c04fc9b232"
  305. #define FRS_SETS_KEY L"Replica Sets"
  306. #define FRS_CUMULATIVE_SETS_KEY L"Cumulative Replica Sets"
  307. #define FRS_CONFIG_SECTION SERVICE_ROOT \
  308. L"\\" SERVICE_NAME \
  309. L"\\Parameters"
  310. #define FRS_SYSVOL_SECTION SERVICE_ROOT \
  311. L"\\" SERVICE_NAME \
  312. L"\\Parameters" \
  313. L"\\SysVol"
  314. #define FRS_SETS_SECTION SERVICE_ROOT \
  315. L"\\" SERVICE_NAME \
  316. L"\\Parameters" \
  317. L"\\" FRS_SETS_KEY
  318. #define FRS_CUMULATIVE_SETS_SECTION SERVICE_ROOT \
  319. L"\\" SERVICE_NAME \
  320. L"\\Parameters" \
  321. L"\\" FRS_CUMULATIVE_SETS_KEY
  322. #define NETLOGON_SECTION SERVICE_ROOT \
  323. L"\\Netlogon" \
  324. L"\\Parameters"
  325. #define JET_PATH L"Database Directory"
  326. #define WINNT_ROOT L"software\\microsoft\\windows nt"
  327. #define FRS_CURRENT_VER_SECTION WINNT_ROOT \
  328. L"\\current version"
  329. //
  330. // Backup Restore related keys.
  331. //
  332. //
  333. // Flags from backup/restore
  334. //
  335. #define FRS_VALUE_BURFLAGS L"BurFlags"
  336. #define FRS_BACKUP_RESTORE_SECTION \
  337. SERVICE_ROOT \
  338. L"\\" SERVICE_NAME \
  339. L"\\Parameters" \
  340. L"\\" L"Backup/Restore"
  341. #define FRS_BACKUP_RESTORE_STOP_SECTION \
  342. SERVICE_ROOT \
  343. L"\\" SERVICE_NAME \
  344. L"\\Parameters" \
  345. L"\\Backup/Restore" \
  346. L"\\Stop NtFrs from Starting"
  347. #define FRS_BACKUP_RESTORE_MV_SECTION \
  348. SERVICE_ROOT \
  349. L"\\" SERVICE_NAME \
  350. L"\\Parameters" \
  351. L"\\Backup/Restore" \
  352. L"\\Process at Startup"
  353. #define FRS_BACKUP_RESTORE_MV_CUMULATIVE_SETS_SECTION \
  354. SERVICE_ROOT \
  355. L"\\" SERVICE_NAME \
  356. L"\\Parameters" \
  357. L"\\Backup/Restore" \
  358. L"\\Process at Startup" \
  359. L"\\" FRS_CUMULATIVE_SETS_KEY
  360. #define FRS_BACKUP_RESTORE_MV_SETS_SECTION \
  361. SERVICE_ROOT \
  362. L"\\" SERVICE_NAME \
  363. L"\\Parameters" \
  364. L"\\Backup/Restore" \
  365. L"\\Process at Startup" \
  366. L"\\" FRS_SETS_KEY
  367. #define FRS_OLD_FILES_NOT_TO_BACKUP L"SOFTWARE" \
  368. L"\\Microsoft" \
  369. L"\\Windows NT" \
  370. L"\\CurrentVersion" \
  371. L"\\FilesNotToBackup"
  372. #define FRS_NEW_FILES_NOT_TO_BACKUP L"SYSTEM" \
  373. L"\\CurrentControlSet" \
  374. L"\\Control" \
  375. L"\\BackupRestore" \
  376. L"\\FilesNotToBackup"
  377. #define FRS_KEYS_NOT_TO_RESTORE L"SYSTEM" \
  378. L"\\CurrentControlSet" \
  379. L"\\Control" \
  380. L"\\BackupRestore" \
  381. L"\\KeysNotToRestore"
  382. //
  383. // Used to set KeysNotToRestore
  384. //
  385. // Set the restore registry key KeysNotToRestore so that NtBackup will retain
  386. // the ntfrs restore keys by moving them into the final restored registry.
  387. //
  388. // CurrentControlSet\Services\NtFrs\Parameters\Backup/Restore\Process at Startup\
  389. //
  390. #define FRS_VALUE_FOR_KEYS_NOT_TO_RESTORE \
  391. L"CurrentControlSet" \
  392. L"\\Services" \
  393. L"\\" SERVICE_NAME \
  394. L"\\Parameters" \
  395. L"\\Backup/Restore" \
  396. L"\\Process at Startup" \
  397. L"\\"
  398. //
  399. // Some files not to backup.
  400. //
  401. #define NTFRS_DBG_LOG_FILE L"\\NtFrs"
  402. #define NTFRS_DBG_LOG_DIR L"%SystemRoot%\\debug"
  403. //
  404. // Event Log Related Keys
  405. //
  406. #define EVENTLOG_ROOT SERVICE_ROOT \
  407. L"\\EventLog"
  408. #define DEFAULT_MESSAGE_FILE_PATH L"%SystemRoot%\\system32\\ntfrsres.dll"
  409. #define FRS_EVENTLOG_SECTION SERVICE_ROOT \
  410. L"\\EventLog" \
  411. L"\\" SERVICE_LONG_NAME
  412. #define FRS_EVENT_TYPES (EVENTLOG_SUCCESS | \
  413. EVENTLOG_ERROR_TYPE | \
  414. EVENTLOG_WARNING_TYPE | \
  415. EVENTLOG_INFORMATION_TYPE | \
  416. EVENTLOG_AUDIT_SUCCESS | \
  417. EVENTLOG_AUDIT_FAILURE)
  418. //
  419. // Shutdown and Startup timeouts for Service Controller.
  420. // Service will forcefully exit if it takes more than
  421. // MAXIMUM_SHUTDOWN_TIMEOUT to shutdown cleanly.
  422. //
  423. #define DEFAULT_SHUTDOWN_TIMEOUT (90) // 90 seconds
  424. #define MAXIMUM_SHUTDOWN_TIMEOUT (300) // 300 seconds
  425. #define DEFAULT_STARTUP_TIMEOUT (30) // 30 seconds
  426. //
  427. // The delayed command server processes a timeout queue. To avoid excessive
  428. // context switches, an entry on the timeout queue times out if it is
  429. // within some delta of the head of the queue. The delta can be adjusted
  430. // by setting the following registry value.
  431. //
  432. #define FUZZY_TIMEOUT_VALUE_IN_MILLISECONDS \
  433. L"Fuzzy Timeout Value In MilliSeconds"
  434. #define DEFAULT_FUZZY_TIMEOUT_VALUE (5 * 1000)
  435. //
  436. // :SP1: Volatile connection cleanup.
  437. //
  438. // A volatile connection is used to seed sysvols after dcpromo.
  439. // If there is inactivity on a volatile outbound connection for more than
  440. // FRS_VOLATILE_CONNECTION_MAX_IDLE_TIME then this connection is unjoined. An unjoin on
  441. // a volatile outbound connection triggers a delete on that connection.
  442. // This is to prevent the case where staging files are kept for ever on
  443. // the parent for a volatile connection.
  444. //
  445. #define FRS_VOLATILE_CONNECTION_MAX_IDLE_TIME (30 * 60 * 1000) // 30 Minutes in milliseconds
  446. //
  447. // Sysvol
  448. //
  449. #define REPLICA_SET_PARENT L"Replica Set Parent"
  450. #define REPLICA_SET_COMMAND L"Replica Set Command"
  451. #define REPLICA_SET_NAME L"Replica Set Name"
  452. #define REPLICA_SET_SEEDING_NAME L"Replica Set Seeding Name"
  453. #define REPLICA_SET_TYPE L"Replica Set Type"
  454. #define REPLICA_SET_PRIMARY L"Replica Set Primary"
  455. #define REPLICA_SET_STATUS L"Replica Set Status"
  456. #define REPLICA_SET_ROOT L"Replica Set Root"
  457. #define REPLICA_SET_STAGE L"Replica Set Stage"
  458. #define REPLICA_SET_TOMBSTONED L"Replica Set Tombstoned"
  459. #define SYSVOL_INFO_IS_COMMITTED L"SysVol Information is Committed"
  460. #define SYSVOL_READY L"SysvolReady"
  461. //
  462. // Enumerate Directory
  463. //
  464. #define DEFAULT_ENUMERATE_DIRECTORY_SIZE (2048)
  465. #define MINIMUM_ENUMERATE_DIRECTORY_SIZE \
  466. (((MAX_PATH + 1) * sizeof(WCHAR)) + sizeof(FILE_DIRECTORY_INFORMATION))
  467. //
  468. // Default values for config parameters.
  469. //
  470. #define DEFAULT_FILE_FILTER_LIST TEXT("*.tmp, *.bak, ~*")
  471. #define DEFAULT_DIR_FILTER_LIST TEXT("")
  472. //
  473. // Preinstall files are put into Root\NTFRS_PREINSTALL_DIRECTORY
  474. //
  475. #define NTFRS_PREINSTALL_DIRECTORY L"DO_NOT_REMOVE_NtFrs_PreInstall_Directory"
  476. //
  477. // Preexisting files are put into Root\NTFRS_PREEXISTING_DIRECTORY
  478. //
  479. #define NTFRS_PREEXISTING_DIRECTORY L"NtFrs_PreExisting___See_EventLog"
  480. //
  481. // Command file to confir that it is OK to move the root to the
  482. // new location. Command file is created at the new root location.
  483. //
  484. #define NTFRS_CMD_FILE_MOVE_ROOT L"NTFRS_CMD_FILE_MOVE_ROOT"
  485. //
  486. // Generic Enabled or Disabled
  487. //
  488. #define FRS_IS_DEFAULT_ENABLED L"Default (Enabled)"
  489. #define FRS_IS_DEFAULT_DISABLED L"Default (Disabled)"
  490. #define FRS_IS_ENABLED L"Enabled"
  491. #define FRS_IS_DISABLED L"Disabled"
  492. //
  493. // Access Checks for RPC API calls (not the service <-> service RPC calls)
  494. //
  495. #define ACCESS_CHECKS_KEY L"Access Checks"
  496. #define ACCESS_CHECKS_KEY_PATH FRS_CONFIG_SECTION L"\\" ACCESS_CHECKS_KEY
  497. #define ACCESS_CHECKS_ARE L"Access checks are [Enabled or Disabled]"
  498. #define ACCESS_CHECKS_ARE_DEFAULT_ENABLED FRS_IS_DEFAULT_ENABLED
  499. #define ACCESS_CHECKS_ARE_DEFAULT_DISABLED FRS_IS_DEFAULT_DISABLED
  500. #define ACCESS_CHECKS_ARE_ENABLED FRS_IS_ENABLED
  501. #define ACCESS_CHECKS_ARE_DISABLED FRS_IS_DISABLED
  502. #define ACCESS_CHECKS_REQUIRE L"Access checks require [Full Control or Read]"
  503. #define ACCESS_CHECKS_REQUIRE_DEFAULT_READ L"Default (Read)"
  504. #define ACCESS_CHECKS_REQUIRE_DEFAULT_WRITE L"Default (Full Control)"
  505. #define ACCESS_CHECKS_REQUIRE_READ L"Read"
  506. #define ACCESS_CHECKS_REQUIRE_WRITE L"Full Control"
  507. //
  508. // The following are used as indices into the API Access Check table defined
  509. // in frsrpc.c. Entries added here must be added there too. The order of the
  510. // entries in the two tables MUST be the same.
  511. //
  512. typedef enum _FRS_API_ACCESS_CHECKS {
  513. ACX_START_DS_POLL = 0,
  514. ACX_SET_DS_POLL,
  515. ACX_GET_DS_POLL,
  516. ACX_INTERNAL_INFO,
  517. ACX_COLLECT_PERFMON_DATA,
  518. ACX_DCPROMO,
  519. ACX_MAX
  520. } FRS_API_ACCESS_CHECKS;
  521. //
  522. // These are the Access Check Key (ACK) names for the API Access Checks.
  523. // They all live in the registry at: "FRS_CONFIG_SECTION\Access Checks"
  524. //
  525. #define ACK_START_DS_POLL L"Start Ds Polling"
  526. #define ACK_SET_DS_POLL L"Set Ds Polling Interval"
  527. #define ACK_GET_DS_POLL L"Get Ds Polling Interval"
  528. #define ACK_INTERNAL_INFO L"Get Internal Information"
  529. #define ACK_COLLECT_PERFMON_DATA L"Get Perfmon Data"
  530. #define ACK_DCPROMO L"dcpromo"
  531. #ifdef __cplusplus
  532. }
  533. #endif