da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER START
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The contents of this file are subject to the terms of the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Common Development and Distribution License (the "License").
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You may not use this file except in compliance with the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * or http://www.opensolaris.org/os/licensing.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * See the License for the specific language governing permissions
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * and limitations under the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * When distributing Covered Code, include this CDDL HEADER in each
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * If applicable, add the following below this CDDL HEADER, with the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * fields enclosed by brackets "[]" replaced with your own identifying
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * information: Portions Copyright [yyyy] [name of copyright owner]
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER END
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Use is subject to license terms.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#ifndef _DSSETUP_NDL_
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define _DSSETUP_NDL_
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Active Directory Service Setup
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego *
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego * Originally this interface contained a number of operations, as listed
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego * below, but due to a buffer overflow security issue, all operations
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego * except DsRoleGetPrimaryDomainInfo have been deprecated (MS04-011).
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#include "ndrtypes.ndl"
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleGetPrimaryDomainInfo 0x00
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleDnsNameToFlatName 0x01
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleDcAsDc 0x02
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleDcAsReplica 0x03
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleDemoteDc 0x04
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleGetDcOperationProgress 0x05
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleGetDcOperationResults 0x06
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleCancel 0x07
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleServerSaveStateForUpgrade 0x08
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleUpgradeDownlevelServer 0x09
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DSSETUP_OPNUM_DsRoleAbortDownlevelServerUpgrade 0x0a
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DS roles
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_STANDALONE_WORKSTATION 0
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_MEMBER_WORKSTATION 1
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_STANDALONE_SERVER 2
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_MEMBER_SERVER 3
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_BACKUP_DC 4
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_PRIMARY_DC 5
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DS role flags
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_PRIMARY_DS_RUNNING 0x00000001
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_PRIMARY_DS_MIXED_MODE 0x00000002
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_UPGRADE_IN_PROGRESS 0x00000004
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT 0x01000000
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DS role upgrade
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_NOT_UPGRADING 0
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_UPGRADING 1
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DS role previous
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_PREVIOUS_UNKNOWN 0
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_PREVIOUS_PRIMARY 1
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_PREVIOUS_BACKUP 2
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DS role state
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_OP_IDLE 0
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_OP_ACTIVE 1
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_OP_NEEDS_REBOOT 2
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DS role information levels
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_BASIC_INFORMATION 1
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_UPGRADE_STATUS 2
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define DS_ROLE_OP_STATUS 3
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct dssetup_uuid {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD data1;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD data2;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD data3;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw BYTE data4[8];
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef struct dssetup_uuid dssetup_uuid_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DS_ROLE_BASIC_INFORMATION
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct dssetup_DsRolePrimaryDomInfo1 {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD role;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD flags;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR nt_domain;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR dns_domain;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR forest;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw dssetup_uuid_t domain_guid;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
2c1b14e51525da2c09064641416fc4aed457c72fjose borregotypedef struct dssetup_DsRolePrimaryDomInfo1 ds_primary_domain_info_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DS_ROLE_UPGRADE_STATUS
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct dssetup_DsRolePrimaryDomInfo2 {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD upgrade_state;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD previous_role;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DS_ROLE_OP_STATUS
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct dssetup_DsRolePrimaryDomInfo3 {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwunion dssetup_GetPrimaryDomainInfo_ru {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw UNION_INFO_ENT(1,dssetup_DsRolePrimaryDomInfo);
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw UNION_INFO_ENT(2,dssetup_DsRolePrimaryDomInfo);
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw UNION_INFO_ENT(3,dssetup_DsRolePrimaryDomInfo);
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DEFAULT char *nullptr;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
2c1b14e51525da2c09064641416fc4aed457c72fjose borregostruct dssetup_GetPrimaryDomainInfo {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD switch_value;
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego SWITCH(switch_value)
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego union dssetup_GetPrimaryDomainInfo_ru ru;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
2c1b14e51525da2c09064641416fc4aed457c72fjose borregotypedef struct dssetup_GetPrimaryDomainInfo dssetup_GetPrimaryDomainInfo_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(DSSETUP_OPNUM_DsRoleGetPrimaryDomainInfo)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct dssetup_DsRoleGetPrimaryDomainInfo {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN WORD level;
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego OUT struct dssetup_GetPrimaryDomainInfo *info;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
2c1b14e51525da2c09064641416fc4aed457c72fjose borregotypedef struct dssetup_DsRoleGetPrimaryDomainInfo
2c1b14e51525da2c09064641416fc4aed457c72fjose borrego dssetup_DsRoleGetPrimaryDomainInfo_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * DSSETUP interface definiton.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwINTERFACE(0)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwunion dssetup_interface {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(DSSETUP_OPNUM_DsRoleGetPrimaryDomainInfo)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct dssetup_DsRoleGetPrimaryDomainInfo GetPrimaryDomainInfo;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef union dssetup_interface dssetup_interface_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwEXTERNTYPEINFO(dssetup_interface)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#endif /* _DSSETUP_NDL_ */