|
|
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
dssetup.idl
Abstract:
Author:
Mac McLain (MacM) 09-April-1997
Environment:
User Mode
Revision History:
--*/
[ uuid(3919286a-b10c-11d0-9ba8-00c04fd92ef5), version(0.0), pointer_default(unique) ]
interface dssetup
{
import "dssetimp.idl" ; #include <lmcons.h> #include <dssetcon.h>
typedef [handle] LPWSTR PDSROLE_SERVER_NAME, *PPDSROLE_SERVER_NAME;
typedef [context_handle] PVOID DSROLER_HANDLE;
typedef [context_handle] PVOID DSROLER_IFM_HANDLE;
typedef DSROLER_HANDLE *PDSROLER_HANDLE;
typedef struct _DSROLER_PRIMARY_DOMAIN_INFO_BASIC {
DSROLE_MACHINE_ROLE MachineRole; ULONG Flags; [ unique, string ] LPWSTR DomainNameFlat; [ unique, string ] LPWSTR DomainNameDns; [ unique, string ] LPWSTR DomainForestName; GUID DomainGuid;
} DSROLER_PRIMARY_DOMAIN_INFO_BASIC, *PDSROLER_PRIMARY_DOMAIN_INFO_BASIC;
typedef [switch_type(DSROLE_PRIMARY_DOMAIN_INFO_LEVEL)] union
_DSROLER_PRIMARY_DOMAIN_INFORMATION {
[case(DsRolePrimaryDomainInfoBasic)] DSROLER_PRIMARY_DOMAIN_INFO_BASIC DomainInfoBasic; [case(DsRoleUpgradeStatus)] DSROLE_UPGRADE_STATUS_INFO UpgradStatusInfo; [case(DsRoleOperationState)] DSROLE_OPERATION_STATE_INFO OperationStateInfo;
} DSROLER_PRIMARY_DOMAIN_INFORMATION, *PDSROLER_PRIMARY_DOMAIN_INFORMATION;
DWORD DsRolerGetPrimaryDomainInformation( [in] handle_t hBinding, [in] DSROLE_PRIMARY_DOMAIN_INFO_LEVEL InfoLevel, [out, switch_is( InfoLevel )] PDSROLER_PRIMARY_DOMAIN_INFORMATION *DomainInfo );
}
/*********************************************************** * * * DsRole Interface for promoting and demoting machines. * * * ***********************************************************/
[ uuid(1cbcad78-df0b-4934-b558-87839ea501c9), version(0.0), pointer_default(unique), endpoint("ncalrpc:[dsrole]") ]
interface dsrole
{
typedef struct _DSROLER_SERVEROP_STATUS {
[ unique, string ] LPWSTR CurrentOperationDisplayString; ULONG OperationStatus; ULONG CurrentOperationDisplayStringIndex;
} DSROLER_SERVEROP_STATUS, *PDSROLER_SERVEROP_STATUS;
typedef struct _DSROLER_SERVEROP_RESULTS {
ULONG OperationStatus; [ unique, string ] LPWSTR OperationStatusDisplayString; [ unique, string ] LPWSTR ServerInstalledSite; ULONG OperationResultsFlags;
} DSROLER_SERVEROP_RESULTS, *PDSROLER_SERVEROP_RESULTS;
// // Structure to pass an encrypted password over the wire. The Length is the // length of the password, which should be placed at the end of the buffer. // typedef struct _DSROLEPR_USER_PASSWORD { UCHAR Obfuscator[DSROLE_OBFUSCATOR_LENGTH]; WCHAR Buffer[DSROLE_MAX_PASSWORD_LENGTH]; ULONG Length; } DSROLEPR_USER_PASSWORD, *PDSROLEPR_USER_PASSWORD;
// // Buffer - contains random fill with the password filling up the end // of the buffer (the last Length bytes). // Length - Length, in bytes, of the password. //
// // This is the encrypted version of the above structure, and is passed // on the wire. //
typedef struct _DSROLEPR_ENCRYPTED_USER_PASSWORD { UCHAR Buffer[ DSROLE_OBFUSCATOR_LENGTH + (DSROLE_MAX_PASSWORD_LENGTH * sizeof(WCHAR)) + sizeof(ULONG) ]; } DSROLEPR_ENCRYPTED_USER_PASSWORD, *PDSROLEPR_ENCRYPTED_USER_PASSWORD;
// //Structure that contains the Encrypted Hash of the BootKey // typedef struct _DSROLEPR_ENCRYPTED_HASH { UNICODE_STRING EncryptedHash; BYTE Salt[ DSROLE_SALT_LENGTH ]; } DSROLEPR_ENCRYPTED_HASH, *PDSROLEPR_ENCRYPTED_HASH;
DWORD DsRolerDnsNameToFlatName( [in] handle_t hBinding, [in, string] LPWSTR lpDnsName, [out, string] LPWSTR *lpFlatName, [out] PDWORD lpStatusFlag );
DWORD DsRolerDcAsDc( [in] handle_t hBinding, [in, string] LPWSTR lpDnsDomainName, [in, string] LPWSTR lpFlatDomainName, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD DomainAdminPassword, [in, unique, string] LPWSTR lpSiteName, [in, string] LPWSTR lpDsDatabasePath, [in, string] LPWSTR lpDsLogPath, [in, string] LPWSTR lpSystemVolumeRootPath, [in, unique, string] LPWSTR lpParentDnsDomainName, [in, unique, string] LPWSTR lpParentServer, [in, unique, string] LPWSTR lpAccount, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD Password, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD DsRepairPassword, [in] ULONG Options, [out] PDSROLER_HANDLE DsOperationHandle );
DWORD DsRolerDcAsReplica( [in] handle_t hBinding, [in, string] LPWSTR lpDnsDomainName, [in, unique, string] LPWSTR lpReplicaServer, [in, unique, string] LPWSTR lpSiteName, [in, string] LPWSTR lpDsDatabasePath, [in, string] LPWSTR lpDsLogPath, [in, unique, string] LPWSTR lpRestorePath, [in, string] LPWSTR lpSystemVolumeRootPath, [in, unique] PDSROLEPR_ENCRYPTED_HASH lpBootkey, [in, unique, string] LPWSTR lpAccount, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD Password, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD DsRepairPassword, [in] ULONG Options, [out] PDSROLER_HANDLE DsOperationHandle );
DWORD DsRolerDemoteDc( [in] handle_t hBinding, [in, unique, string] LPWSTR lpDnsDomainName, [in] DSROLE_SERVEROP_DEMOTE_ROLE ServerRole, [in, unique, string] LPWSTR lpAccount, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD Password, [in] ULONG Options, [in] BOOL fLastDcInDomain, [in, range(0,200) ] ULONG cRemoveNCs, [in, unique, size_is(cRemoveNCs)] [string] LPCWSTR * pszRemoveNCs, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD AdminPassword, [out] PDSROLER_HANDLE DsOperationHandle );
DWORD DsRolerGetDcOperationProgress( [in] handle_t hBinding, [in] PDSROLER_HANDLE DsOperationHandle, [out] PDSROLER_SERVEROP_STATUS *ServerOperationStatus );
DWORD DsRolerGetDcOperationResults( [in] handle_t hBinding, [in] PDSROLER_HANDLE DsOperationHandle, [out] PDSROLER_SERVEROP_RESULTS *ServerOperationResults );
DWORD DsRolerCancel( [in] handle_t hBinding, [in] PDSROLER_HANDLE DsOperationHandle );
DWORD DsRolerIfmHandleFree( [in] handle_t hBinding, [in] DSROLER_IFM_HANDLE * pIfmHandle );
DWORD DsRolerServerSaveStateForUpgrade( [in] handle_t hBinding, [in, unique, string] LPWSTR AnswerFile );
DWORD DsRolerUpgradeDownlevelServer( [in] handle_t hBinding, [in, string] LPWSTR lpDnsDomainName, [in, unique, string] LPWSTR lpSiteName, [in, string] LPWSTR lpDsDatabasePath, [in, string] LPWSTR lpDsLogPath, [in, string] LPWSTR lpSystemVolumeRootPath, [in, unique, string] LPWSTR lpParentDnsDomainName, [in, unique, string] LPWSTR lpParentServer, [in, unique, string] LPWSTR lpAccount, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD Password, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD DsRepairPassword, [in] ULONG Options, [out] PDSROLER_HANDLE DsOperationHandle );
DWORD DsRolerAbortDownlevelServerUpgrade( [in] handle_t hBinding, [in, unique, string] LPWSTR lpAccount, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD Password, [in, unique] PDSROLEPR_ENCRYPTED_USER_PASSWORD AdminPassword, [in] ULONG Options );
DWORD DsRolerGetDatabaseFacts( [in] handle_t hBinding, [in, string] LPWSTR RestorePath, [out, string] LPWSTR *ppDNSDomainName, [out] PULONG State, [out] DSROLER_IFM_HANDLE * pIfmHandle );
}
|