|
|
/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
dssetp.ch
Abstract:
Routines the
Author:
Colin Brace (ColinBr) April 5, 1999 Environment:
User Mode
Revision History:
Mac McLain (MacM) Feb 10, 1997 --*/ #ifndef __THREADMAN_H__
#define __THREADMAN_H__
//
// Arguments for the promote thread
//
typedef struct _DSROLEP_OPERATION_PROMOTE_ARGS {
LPWSTR DnsDomainName; LPWSTR FlatDomainName; LPWSTR SiteName; LPWSTR DsDatabasePath; LPWSTR DsLogPath; IFM_SYSTEM_INFO * pIfmSystemInfo; LPWSTR SysVolRootPath; UNICODE_STRING Bootkey; LPWSTR Parent; LPWSTR Server; LPWSTR Account; UNICODE_STRING Password; UNICODE_STRING DomainAdminPassword; ULONG Options; HANDLE ImpersonateToken; UCHAR Decode; UNICODE_STRING SafeModePassword; } DSROLEP_OPERATION_PROMOTE_ARGS, *PDSROLEP_OPERATION_PROMOTE_ARGS;
//
// Argument threads for the demotion thread
//
typedef struct _DSROLEP_OPERATION_DEMOTE_ARGS {
DSROLE_SERVEROP_DEMOTE_ROLE ServerRole; LPWSTR DomainName; LPWSTR Account; UNICODE_STRING Password; BOOLEAN LastDcInDomain; ULONG cRemoveNCs; LPWSTR * pszRemoveNCs; UNICODE_STRING AdminPassword; ULONG Options; HANDLE ImpersonateToken; UCHAR Decode; } DSROLEP_OPERATION_DEMOTE_ARGS, *PDSROLEP_OPERATION_DEMOTE_ARGS;
//
// Prototypes for thread functions
//
DWORD DsRolepThreadPromoteDc( IN PVOID ArgumentBlock );
DWORD DsRolepThreadPromoteReplica( IN PVOID ArgumentBlock );
DWORD DsRolepThreadDemote( IN PVOID ArgumentBlock );
DWORD DsRolepSpinWorkerThread( IN DSROLEP_OPERATION_TYPE Operation, IN PVOID ArgumentBlock );
DWORD DsRolepBuildPromoteArgumentBlock( IN LPWSTR DnsDomainName, IN LPWSTR FlatDomainName, IN LPWSTR SiteName, IN LPWSTR DsDatabasePath, IN LPWSTR DsLogPath, IN IFM_SYSTEM_INFO * pIfmSystemInfo, IN LPWSTR SystemVolumeRootPath, IN PUNICODE_STRING Bootkey, IN LPWSTR Parent, IN LPWSTR Server, IN LPWSTR Account, IN PUNICODE_STRING Password, IN PUNICODE_STRING DomainAdminPassword, IN PUNICODE_STRING SafeModeAdminPassword, IN ULONG Options, IN UCHAR PasswordSeed, IN OUT PDSROLEP_OPERATION_PROMOTE_ARGS *Promote );
DWORD DsRolepBuildDemoteArgumentBlock( IN DSROLE_SERVEROP_DEMOTE_ROLE ServerRole, IN LPWSTR DnsDomainName, IN LPWSTR Account, IN PUNICODE_STRING Password, IN ULONG Options, IN BOOL LastDcInDomain, IN ULONG cRemoveNCs, IN LPWSTR * pszRemoveNCs, IN PUNICODE_STRING DomainAdminPassword, IN UCHAR PasswordSeed, OUT PDSROLEP_OPERATION_DEMOTE_ARGS *Demote );
VOID DsRolepFreeArgumentBlock( IN PVOID ArgumentBlock, IN BOOLEAN Promote );
#endif // __THREADMAN_H__
|