| 1 | /** |
| 2 | * This file has no copyright assigned and is placed in the Public Domain. |
| 3 | * This file is part of the mingw-w64 runtime package. |
| 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| 5 | */ |
| 6 | #ifndef __DSROLE_H__ |
| 7 | #define __DSROLE_H__ |
| 8 | |
| 9 | #ifdef __cplusplus |
| 10 | extern "C" { |
| 11 | #endif |
| 12 | |
| 13 | typedef enum _DSROLE_MACHINE_ROLE { |
| 14 | DsRole_RoleStandaloneWorkstation,DsRole_RoleMemberWorkstation,DsRole_RoleStandaloneServer, |
| 15 | DsRole_RoleMemberServer,DsRole_RoleBackupDomainController,DsRole_RolePrimaryDomainController |
| 16 | } DSROLE_MACHINE_ROLE; |
| 17 | |
| 18 | typedef enum _DSROLE_SERVER_STATE { |
| 19 | DsRoleServerUnknown = 0,DsRoleServerPrimary,DsRoleServerBackup |
| 20 | } DSROLE_SERVER_STATE,*PDSROLE_SERVER_STATE; |
| 21 | |
| 22 | typedef enum _DSROLE_PRIMARY_DOMAIN_INFO_LEVEL { |
| 23 | DsRolePrimaryDomainInfoBasic = 1,DsRoleUpgradeStatus,DsRoleOperationState |
| 24 | } DSROLE_PRIMARY_DOMAIN_INFO_LEVEL; |
| 25 | |
| 26 | #define DSROLE_PRIMARY_DS_RUNNING 0x00000001 |
| 27 | #define DSROLE_PRIMARY_DS_MIXED_MODE 0x00000002 |
| 28 | #define DSROLE_UPGRADE_IN_PROGRESS 0x00000004 |
| 29 | #define DSROLE_PRIMARY_DOMAIN_GUID_PRESENT 0x01000000 |
| 30 | |
| 31 | typedef struct _DSROLE_PRIMARY_DOMAIN_INFO_BASIC { |
| 32 | DSROLE_MACHINE_ROLE MachineRole; |
| 33 | ULONG Flags; |
| 34 | LPWSTR DomainNameFlat; |
| 35 | LPWSTR DomainNameDns; |
| 36 | LPWSTR DomainForestName; |
| 37 | GUID DomainGuid; |
| 38 | } DSROLE_PRIMARY_DOMAIN_INFO_BASIC,*PDSROLE_PRIMARY_DOMAIN_INFO_BASIC; |
| 39 | |
| 40 | typedef struct _DSROLE_UPGRADE_STATUS_INFO { |
| 41 | ULONG OperationState; |
| 42 | DSROLE_SERVER_STATE PreviousServerState; |
| 43 | } DSROLE_UPGRADE_STATUS_INFO,*PDSROLE_UPGRADE_STATUS_INFO; |
| 44 | |
| 45 | typedef enum _DSROLE_OPERATION_STATE { |
| 46 | DsRoleOperationIdle = 0,DsRoleOperationActive,DsRoleOperationNeedReboot |
| 47 | } DSROLE_OPERATION_STATE; |
| 48 | |
| 49 | typedef struct _DSROLE_OPERATION_STATE_INFO { |
| 50 | DSROLE_OPERATION_STATE OperationState; |
| 51 | } DSROLE_OPERATION_STATE_INFO,*PDSROLE_OPERATION_STATE_INFO; |
| 52 | |
| 53 | DWORD WINAPI DsRoleGetPrimaryDomainInformation(LPCWSTR lpServer,DSROLE_PRIMARY_DOMAIN_INFO_LEVEL InfoLevel,PBYTE *Buffer); |
| 54 | VOID WINAPI DsRoleFreeMemory(PVOID Buffer); |
| 55 | |
| 56 | #ifdef __cplusplus |
| 57 | } |
| 58 | #endif |
| 59 | #endif |