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.
272 lines
7.7 KiB
272 lines
7.7 KiB
/*++
|
|
|
|
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
|
|
);
|
|
|
|
}
|
|
|