winapi_ui_automation/um/
dsrole.rs1use shared::guiddef::GUID;
8use shared::minwindef::{DWORD, PBYTE, ULONG};
9use um::winnt::{LPCWSTR, LPWSTR, PVOID};
10ENUM!{enum DSROLE_MACHINE_ROLE {
11 DsRole_RoleStandaloneWorkstation,
12 DsRole_RoleMemberWorkstation,
13 DsRole_RoleStandaloneServer,
14 DsRole_RoleMemberServer,
15 DsRole_RoleBackupDomainController,
16 DsRole_RolePrimaryDomainController,
17}}
18ENUM!{enum DSROLE_SERVER_STATE {
19 DsRoleServerUnknown = 0,
20 DsRoleServerPrimary,
21 DsRoleServerBackup,
22}}
23pub type PDSROLE_SERVER_STATE = *mut DSROLE_SERVER_STATE;
24ENUM!{enum DSROLE_PRIMARY_DOMAIN_INFO_LEVEL {
25 DsRolePrimaryDomainInfoBasic = 1,
26 DsRoleUpgradeStatus,
27 DsRoleOperationState,
28}}
29pub const DSROLE_PRIMARY_DS_RUNNING: ULONG = 0x00000001;
30pub const DSROLE_PRIMARY_DS_MIXED_MODE: ULONG = 0x00000002;
31pub const DSROLE_UPGRADE_IN_PROGRESS: ULONG = 0x00000004;
32pub const DSROLE_PRIMARY_DS_READONLY: ULONG = 0x00000008;
33pub const DSROLE_PRIMARY_DOMAIN_GUID_PRESENT: ULONG = 0x01000000;
34STRUCT!{struct DSROLE_PRIMARY_DOMAIN_INFO_BASIC {
35 MachineRole: DSROLE_MACHINE_ROLE,
36 Flags: ULONG,
37 DomainNameFlat: LPWSTR,
38 DomainNameDns: LPWSTR,
39 DomainForestName: LPWSTR,
40 DomainGuid: GUID,
41}}
42pub type PDSROLE_PRIMARY_DOMAIN_INFO_BASIC = *mut DSROLE_PRIMARY_DOMAIN_INFO_BASIC;
43STRUCT!{struct DSROLE_UPGRADE_STATUS_INFO {
44 OperationState: ULONG,
45 PreviousServerState: DSROLE_SERVER_STATE,
46}}
47pub type PDSROLE_UPGRADE_STATUS_INFO = *mut DSROLE_UPGRADE_STATUS_INFO;
48ENUM!{enum DSROLE_OPERATION_STATE {
49 DsRoleOperationIdle = 0,
50 DsRoleOperationActive,
51 DsRoleOperationNeedReboot,
52}}
53STRUCT!{struct DSROLE_OPERATION_STATE_INFO {
54 OperationState: DSROLE_OPERATION_STATE,
55}}
56pub type PDSROLE_OPERATION_STATE_INFO = *mut DSROLE_OPERATION_STATE_INFO;
57extern "system" {
58 pub fn DsRoleGetPrimaryDomainInformation(
59 lpServer: LPCWSTR,
60 InfoLevel: DSROLE_PRIMARY_DOMAIN_INFO_LEVEL,
61 Buffer: *mut PBYTE,
62 ) -> DWORD;
63 pub fn DsRoleFreeMemory(
64 Buffer: PVOID,
65 );
66}