/*++ Copyright (c) 1998 Microsoft Corporation Module Name: frsapi.idl Abstract: Define the application programmer's interface for NtFrs. Author: Billy J. Fuller 1-Jan-1998 Environment: User mode winnt Comments: Important version information ------------------------------- Whenever this interface is updated, the version number (a few lines below) MUST be changed. This insures that a the client and server remain synchronized, and that calls will succeed only if the client and server are compatible. The vesrion number is in the form of x.y where x is the major version number and y is the minor version number. If the changes to the interface are upwardly compatible, (i.e., a client calling through the old interface definition is allowed to connect to a server exposing the new interface definition), you should increase the minor version number (y) and maintain the same major version number. If the changes to the interface render it incompatible with the older clients, increase the major version (x) and reset the minor version number to 0. Note that the defines for the handle names must be changed also. --*/ [ uuid (D049B186-814F-11D1-9A3C-00C04FC9B232), version(1.1), pointer_default (unique) ] interface NtFrsApi { typedef unsigned long ULONG; typedef wchar_t WCHAR, *PWCHAR; // // VERSION 1.1 // // Don't reorder. // Add new functions to end of idl and change version's minor number. // // // Seed the system volume (sysvol). Called during dcpromo. // ULONG NtFrsApi_Rpc_StartPromotionW( [in] handle_t Handle, [in, string, unique] PWCHAR ParentComputer, [in, string, unique] PWCHAR ParentAccount, [in, string, unique] PWCHAR ParentPassword, [in, string, unique] PWCHAR ReplicaSetName, [in, string, unique] PWCHAR ReplicaSetType, [in] ULONG ReplicaSetPrimary, [in, string, unique] PWCHAR ReplicaSetStage, [in, string, unique] PWCHAR ReplicaSetRoot ); // // Status of sysvol seeding. Called during dcpromo. // ULONG NtFrsApi_Rpc_PromotionStatusW( [in] handle_t Handle, [in, string, unique] PWCHAR ReplicaSetName, [out] ULONG *ServiceState, [out] ULONG *ServiceWStatus, [out, string] PWCHAR *ServiceDisplay ); // // Stop replicating the system volume (sysvol). Called during dcdemote. // ULONG NtFrsApi_Rpc_StartDemotionW( [in] handle_t Handle, [in, string, unique] PWCHAR ReplicaSetName ); // // Commit the demotion of all demoted sysvols. Called during dcdemote. // ULONG NtFrsApi_Rpc_CommitDemotionW( [in] handle_t Handle ); // // Set the interval and initiate a polling cycle // ULONG NtFrsApi_Rpc_Set_DsPollingIntervalW( [in] handle_t Handle, [in] ULONG UseShortInterval, [in] ULONG LongInterval, [in] ULONG ShortInterval ); // // Get the current polling intervals // ULONG NtFrsApi_Rpc_Get_DsPollingIntervalW( [in] handle_t Handle, [out] ULONG *Interval, [out] ULONG *LongInterval, [out] ULONG *ShortInterval ); // // VERSION 1.2 // // // Verify that promotion seems likely; otherwise fail early // ULONG NtFrsApi_Rpc_VerifyPromotionW( [in] handle_t Handle, [in, string, unique] PWCHAR ParentComputer, [in, string, unique] PWCHAR ParentAccount, [in, string, unique] PWCHAR ParentPassword, [in, string, unique] PWCHAR ReplicaSetName, [in, string, unique] PWCHAR ReplicaSetType, [in] ULONG ReplicaSetPrimary, [in, string, unique] PWCHAR ReplicaSetStage, [in, string, unique] PWCHAR ReplicaSetRoot ); // // VERSION 1.3 // // // Get internal info (blob format) // ULONG NtFrsApi_Rpc_InfoW( [in] handle_t Handle, [in] ULONG BlobSize, [in, out, size_is(BlobSize), unique] unsigned char *Blob ); }