1 /* 2 * Directory Services definitions 3 * 4 * Copyright 2005 Paul Vriens 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 */ 20 21 #ifndef __WINE_DSROLE_H 22 #define __WINE_DSROLE_H 23 24 #define DSROLE_PRIMARY_DS_RUNNING 0x00000001 25 #define DSROLE_PRIMARY_DS_MIXED_MODE 0x00000002 26 #define DSROLE_UPGRADE_IN_PROGRESS 0x00000004 27 #define DSROLE_PRIMARY_DOMAIN_GUID_PRESENT 0x01000000 28 29 typedef enum _DSROLE_PRIMARY_DOMAIN_INFO_LEVEL 30 { 31 DsRolePrimaryDomainInfoBasic = 1, 32 DsRoleUpgradeStatus, 33 DsRoleOperationState 34 } DSROLE_PRIMARY_DOMAIN_INFO_LEVEL; 35 36 typedef enum _DSROLE_MACHINE_ROLE 37 { 38 DsRole_RoleStandaloneWorkstation = 0, 39 DsRole_RoleMemberWorkstation, 40 DsRole_RoleStandaloneServer, 41 DsRole_RoleMemberServer, 42 DsRole_RoleBackupDomainController, 43 DsRole_RolePrimaryDomainController 44 } DSROLE_MACHINE_ROLE; 45 46 typedef enum _DSROLE_SERVER_STATE 47 { 48 DsRoleServerUnknown = 0, 49 DsRoleServerPrimary, 50 DsRoleServerBackup 51 } DSROLE_SERVER_STATE; 52 53 typedef enum _DSROLE_OPERATION_STATE 54 { 55 DsRoleOperationIdle = 0, 56 DsRoleOperationActive, 57 DsRoleOperationNeedReboot 58 } DSROLE_OPERATION_STATE; 59 60 typedef struct _DSROLE_PRIMARY_DOMAIN_INFO_BASIC 61 { 62 DSROLE_MACHINE_ROLE MachineRole; 63 ULONG Flags; 64 LPWSTR DomainNameFlat; 65 LPWSTR DomainNameDns; 66 LPWSTR DomainForestName; 67 GUID DomainGuid; 68 } DSROLE_PRIMARY_DOMAIN_INFO_BASIC, *PDSROLE_PRIMARY_DOMAIN_INFO_BASIC; 69 70 typedef struct _DSROLE_UPGRADE_STATUS_INFO 71 { 72 ULONG OperationState; 73 DSROLE_SERVER_STATE PreviousServerState; 74 } DSROLE_UPGRADE_STATUS_INFO, *PDSROLE_UPGRADE_STATUS_INFO; 75 76 typedef struct _DSROLE_OPERATION_STATE_INFO 77 { 78 DSROLE_OPERATION_STATE OperationState; 79 } DSROLE_OPERATION_STATE_INFO, *PDSROLE_OPERATION_STATE_INFO; 80 81 VOID WINAPI DsRoleFreeMemory(IN PVOID Buffer); 82 DWORD WINAPI DsRoleGetPrimaryDomainInformation(IN LPCWSTR lpServer OPTIONAL, IN DSROLE_PRIMARY_DOMAIN_INFO_LEVEL InfoLevel, OUT PBYTE *Buffer); 83 84 #endif /* __WINE_DSROLE_H */ 85