1 // Copyright © 2015, skdltmxn
2 // Licensed under the MIT License <LICENSE.md>
3 //! Contains public interfaces to query the network roles of workstations, servers, and DCs
4 ENUM
!{enum DSROLE_MACHINE_ROLE
{
5 DsRole_RoleStandaloneWorkstation
,
6 DsRole_RoleMemberWorkstation
,
7 DsRole_RoleStandaloneServer
,
8 DsRole_RoleMemberServer
,
9 DsRole_RoleBackupDomainController
,
10 DsRole_RolePrimaryDomainController
,
12 ENUM
!{enum DSROLE_SERVER_STATE
{
13 DsRoleServerUnknown
= 0,
17 pub type PDSROLE_SERVER_STATE
= *mut DSROLE_SERVER_STATE
;
18 ENUM
!{enum DSROLE_PRIMARY_DOMAIN_INFO_LEVEL
{
19 DsRolePrimaryDomainInfoBasic
= 1,
23 pub const DSROLE_PRIMARY_DS_RUNNING
: ::ULONG
= 0x00000001;
24 pub const DSROLE_PRIMARY_DS_MIXED_MODE
: ::ULONG
= 0x00000002;
25 pub const DSROLE_UPGRADE_IN_PROGRESS
: ::ULONG
= 0x00000004;
26 pub const DSROLE_PRIMARY_DS_READONLY
: ::ULONG
= 0x00000008;
27 pub const DSROLE_PRIMARY_DOMAIN_GUID_PRESENT
: ::ULONG
= 0x01000000;
28 STRUCT
!{struct DSROLE_PRIMARY_DOMAIN_INFO_BASIC
{
29 MachineRole
: DSROLE_MACHINE_ROLE
,
31 DomainNameFlat
: ::LPWSTR
,
32 DomainNameDns
: ::LPWSTR
,
33 DomainForestName
: ::LPWSTR
,
36 pub type PDSROLE_PRIMARY_DOMAIN_INFO_BASIC
= *mut DSROLE_PRIMARY_DOMAIN_INFO_BASIC
;
37 STRUCT
!{struct DSROLE_UPGRADE_STATUS_INFO
{
38 OperationState
: ::ULONG
,
39 PreviousServerState
: DSROLE_SERVER_STATE
,
41 pub type PDSROLE_UPGRADE_STATUS_INFO
= *mut DSROLE_UPGRADE_STATUS_INFO
;
42 ENUM
!{enum DSROLE_OPERATION_STATE
{
43 DsRoleOperationIdle
= 0,
44 DsRoleOperationActive
,
45 DsRoleOperationNeedReboot
,
47 STRUCT
!{struct DSROLE_OPERATION_STATE_INFO
{
48 OperationState
: DSROLE_OPERATION_STATE
,
50 pub type PDSROLE_OPERATION_STATE_INFO
= *mut DSROLE_OPERATION_STATE_INFO
;