Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

183 lines
5.2 KiB

  1. /*++
  2. Copyright (c) 1998 Microsoft Corporation
  3. Module Name:
  4. frsapi.idl
  5. Abstract:
  6. Define the application programmer's interface for NtFrs.
  7. Author:
  8. Billy J. Fuller 1-Jan-1998
  9. Environment:
  10. User mode winnt
  11. Comments:
  12. Important version information
  13. -------------------------------
  14. Whenever this interface is updated, the version number (a few lines
  15. below) MUST be changed. This insures that a the client and server remain
  16. synchronized, and that calls will succeed only if the client and server
  17. are compatible. The vesrion number is in the form of x.y where x is the
  18. major version number and y is the minor version number. If the changes
  19. to the interface are upwardly compatible, (i.e., a client calling
  20. through the old interface definition is allowed to connect to a server
  21. exposing the new interface definition), you should increase the minor
  22. version number (y) and maintain the same major version number. If the
  23. changes to the interface render it incompatible with the older clients,
  24. increase the major version (x) and reset the minor version number to 0.
  25. Note that the defines for the handle names must be changed also.
  26. --*/
  27. import "guiddef.h";
  28. [
  29. uuid (D049B186-814F-11D1-9A3C-00C04FC9B232), version(1.1),
  30. pointer_default (unique)
  31. ] interface NtFrsApi
  32. {
  33. typedef unsigned long ULONG;
  34. typedef wchar_t WCHAR, *PWCHAR;
  35. //
  36. // VERSION 1.1
  37. //
  38. // Don't reorder.
  39. // Add new functions to end of idl and change version's minor number.
  40. //
  41. //
  42. // Seed the system volume (sysvol). Called during dcpromo.
  43. //
  44. ULONG
  45. NtFrsApi_Rpc_StartPromotionW(
  46. [in] handle_t Handle,
  47. [in, string, unique] PWCHAR ParentComputer,
  48. [in, string, unique] PWCHAR ParentAccount,
  49. [in, string, unique] PWCHAR ParentPassword,
  50. [in, string, unique] PWCHAR ReplicaSetName,
  51. [in, string, unique] PWCHAR ReplicaSetType,
  52. [in] ULONG ReplicaSetPrimary,
  53. [in, string, unique] PWCHAR ReplicaSetStage,
  54. [in, string, unique] PWCHAR ReplicaSetRoot
  55. );
  56. //
  57. // Status of sysvol seeding. Called during dcpromo.
  58. //
  59. ULONG
  60. NtFrsApi_Rpc_PromotionStatusW(
  61. [in] handle_t Handle,
  62. [in, string, unique] PWCHAR ReplicaSetName,
  63. [out] ULONG *ServiceState,
  64. [out] ULONG *ServiceWStatus,
  65. [out, string] PWCHAR *ServiceDisplay
  66. );
  67. //
  68. // Stop replicating the system volume (sysvol). Called during dcdemote.
  69. //
  70. ULONG
  71. NtFrsApi_Rpc_StartDemotionW(
  72. [in] handle_t Handle,
  73. [in, string, unique] PWCHAR ReplicaSetName
  74. );
  75. //
  76. // Commit the demotion of all demoted sysvols. Called during dcdemote.
  77. //
  78. ULONG
  79. NtFrsApi_Rpc_CommitDemotionW(
  80. [in] handle_t Handle
  81. );
  82. //
  83. // Set the interval and initiate a polling cycle
  84. //
  85. ULONG
  86. NtFrsApi_Rpc_Set_DsPollingIntervalW(
  87. [in] handle_t Handle,
  88. [in] ULONG UseShortInterval,
  89. [in] ULONG LongInterval,
  90. [in] ULONG ShortInterval
  91. );
  92. //
  93. // Get the current polling intervals
  94. //
  95. ULONG
  96. NtFrsApi_Rpc_Get_DsPollingIntervalW(
  97. [in] handle_t Handle,
  98. [out] ULONG *Interval,
  99. [out] ULONG *LongInterval,
  100. [out] ULONG *ShortInterval
  101. );
  102. //
  103. // VERSION 1.2
  104. //
  105. //
  106. // Verify that promotion seems likely; otherwise fail early
  107. //
  108. ULONG
  109. NtFrsApi_Rpc_VerifyPromotionW(
  110. [in] handle_t Handle,
  111. [in, string, unique] PWCHAR ParentComputer,
  112. [in, string, unique] PWCHAR ParentAccount,
  113. [in, string, unique] PWCHAR ParentPassword,
  114. [in, string, unique] PWCHAR ReplicaSetName,
  115. [in, string, unique] PWCHAR ReplicaSetType,
  116. [in] ULONG ReplicaSetPrimary,
  117. [in, string, unique] PWCHAR ReplicaSetStage,
  118. [in, string, unique] PWCHAR ReplicaSetRoot
  119. );
  120. //
  121. // VERSION 1.3
  122. //
  123. //
  124. // Get internal info (blob format)
  125. //
  126. ULONG
  127. NtFrsApi_Rpc_InfoW(
  128. [in] handle_t Handle,
  129. [in, range(0,64 * 1024)] ULONG BlobSize,
  130. [in, out, size_is(BlobSize), unique] unsigned char *Blob
  131. );
  132. //
  133. // VERSION 1.4
  134. //
  135. //
  136. // Find out if a give path is in a replica set
  137. //
  138. ULONG
  139. NtFrsApi_Rpc_IsPathReplicated(
  140. [in] handle_t Handle,
  141. [in, string, unique] PWCHAR Path,
  142. [in] ULONG ReplicaSetTypeOfInterest,
  143. [out] ULONG *Replicated,
  144. [out] ULONG *Primary,
  145. [out] ULONG *Root,
  146. [out] GUID *ReplicaSetGuid
  147. );
  148. //
  149. // VERSION 1.5
  150. //
  151. //
  152. // RPC interface to Freeze and thaw FRS
  153. //
  154. ULONG
  155. NtFrsApi_Rpc_WriterCommand(
  156. [in] handle_t Handle,
  157. [in] ULONG Command
  158. );
  159. }