/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef __DSROLE_H__ #define __DSROLE_H__ #ifdef __cplusplus extern "C" { #endif typedef enum _DSROLE_MACHINE_ROLE { DsRole_RoleStandaloneWorkstation,DsRole_RoleMemberWorkstation,DsRole_RoleStandaloneServer, DsRole_RoleMemberServer,DsRole_RoleBackupDomainController,DsRole_RolePrimaryDomainController } DSROLE_MACHINE_ROLE; typedef enum _DSROLE_SERVER_STATE { DsRoleServerUnknown = 0,DsRoleServerPrimary,DsRoleServerBackup } DSROLE_SERVER_STATE,*PDSROLE_SERVER_STATE; typedef enum _DSROLE_PRIMARY_DOMAIN_INFO_LEVEL { DsRolePrimaryDomainInfoBasic = 1,DsRoleUpgradeStatus,DsRoleOperationState } DSROLE_PRIMARY_DOMAIN_INFO_LEVEL; #define DSROLE_PRIMARY_DS_RUNNING 0x00000001 #define DSROLE_PRIMARY_DS_MIXED_MODE 0x00000002 #define DSROLE_UPGRADE_IN_PROGRESS 0x00000004 #define DSROLE_PRIMARY_DOMAIN_GUID_PRESENT 0x01000000 typedef struct _DSROLE_PRIMARY_DOMAIN_INFO_BASIC { DSROLE_MACHINE_ROLE MachineRole; ULONG Flags; LPWSTR DomainNameFlat; LPWSTR DomainNameDns; LPWSTR DomainForestName; GUID DomainGuid; } DSROLE_PRIMARY_DOMAIN_INFO_BASIC,*PDSROLE_PRIMARY_DOMAIN_INFO_BASIC; typedef struct _DSROLE_UPGRADE_STATUS_INFO { ULONG OperationState; DSROLE_SERVER_STATE PreviousServerState; } DSROLE_UPGRADE_STATUS_INFO,*PDSROLE_UPGRADE_STATUS_INFO; typedef enum _DSROLE_OPERATION_STATE { DsRoleOperationIdle = 0,DsRoleOperationActive,DsRoleOperationNeedReboot } DSROLE_OPERATION_STATE; typedef struct _DSROLE_OPERATION_STATE_INFO { DSROLE_OPERATION_STATE OperationState; } DSROLE_OPERATION_STATE_INFO,*PDSROLE_OPERATION_STATE_INFO; DWORD WINAPI DsRoleGetPrimaryDomainInformation(LPCWSTR lpServer,DSROLE_PRIMARY_DOMAIN_INFO_LEVEL InfoLevel,PBYTE *Buffer); VOID WINAPI DsRoleFreeMemory(PVOID Buffer); #ifdef __cplusplus } #endif #endif