2 Unix SMB/CIFS implementation.
3 SMB parameters and setup
4 Copyright (C) Gerald Carter 2002
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program 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
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef _RPC_DS_H /* _RPC_LSA_H */
23 /* Opcodes available on PIPE_LSARPC_DS */
25 #define DS_GETPRIMDOMINFO 0x00
26 #define DS_NOP 0xFF /* no op -- placeholder */
28 /* Opcodes available on PIPE_NETLOGON */
30 #define DS_ENUM_DOM_TRUSTS 0x28
32 /* macros for RPC's */
34 /* DSROLE_PRIMARY_DOMAIN_INFO_BASIC */
38 #define DSROLE_PRIMARY_DS_RUNNING 0x00000001
39 #define DSROLE_PRIMARY_DS_MIXED_MODE 0x00000002
40 #define DSROLE_UPGRADE_IN_PROGRESS 0x00000004
41 #define DSROLE_PRIMARY_DOMAIN_GUID_PRESENT 0x01000000
45 #define DSROLE_DOMAIN_MEMBER_WKS 1
46 #define DSROLE_STANDALONE_SRV 2
47 #define DSROLE_DOMAIN_MEMBER_SRV 3
51 /* Settings for the domainFunctionality attribute in the rootDSE */
53 #define DS_DOMAIN_FUNCTION_2000 0
54 #define DS_DOMAIN_FUCNTION_2003_MIXED 1
55 #define DS_DOMAIN_FUNCTION_2003 2
63 uint32 forestname_ptr;
65 struct GUID domain_guid;
66 UNISTR2 netbios_domain;
67 UNISTR2 dns_domain; /* our dns domain */
68 UNISTR2 forest_domain; /* root domain of the forest to which we belong */
69 } DSROLE_PRIMARY_DOMAIN_INFO_BASIC;
73 DSROLE_PRIMARY_DOMAIN_INFO_BASIC *basic;
76 /* info levels for ds_getprimdominfo() */
78 #define DsRolePrimaryDomainInfoBasic 1
80 /* DS_Q_GETPRIMDOMINFO - DsGetPrimaryDomainInformation() request */
84 } DS_Q_GETPRIMDOMINFO;
86 /* DS_R_GETPRIMDOMINFO - DsGetPrimaryDomainInformation() response */
92 uint16 unknown0; /* 0x455c -- maybe just alignment? */
97 } DS_R_GETPRIMDOMINFO;
100 /* static portion of structure */
106 uint32 trust_attributes;
110 UNISTR2 netbios_domain;
116 struct ds_domain_trust {
117 /* static portion of structure */
121 uint32 trust_attributes;
125 char *netbios_domain;
133 DS_DOMAIN_TRUSTS *trusts;
135 } DS_DOMAIN_TRUSTS_CTR;
139 #define DS_DOMAIN_IN_FOREST 0x0001 /* domains in the forest to which
140 we belong; even different domain trees */
141 #define DS_DOMAIN_DIRECT_OUTBOUND 0x0002 /* trusted domains */
142 #define DS_DOMAIN_TREE_ROOT 0x0004 /* root of a forest */
143 #define DS_DOMAIN_PRIMARY 0x0008 /* our domain */
144 #define DS_DOMAIN_NATIVE_MODE 0x0010 /* native mode AD servers */
145 #define DS_DOMAIN_DIRECT_INBOUND 0x0020 /* trusting domains */
149 #define DS_DOMAIN_TRUST_TYPE_DOWNLEVEL 0x00000001
150 #define DS_DOMAIN_TRUST_TYPE_UPLEVEL 0x00000002
152 /* Trust attributes */
154 #define DS_DOMAIN_TRUST_ATTRIB_NON_TRANSITIVE 0x00000001
155 #define DS_DOMAIN_TRUST_ATTRIB_UPLEVEL_ONLY 0x00000002
156 #define DS_DOMAIN_TRUST_ATTRIB_QUARANTINED_DOMAIN 0x00000004
157 #define DS_DOMAIN_TRUST_ATTRIB_FOREST_TRANSITIVE 0x00000008
158 #define DS_DOMAIN_TRUST_ATTRIB_CROSS_ORG 0x00000010
159 #define DS_DOMAIN_TRUST_ATTRIB_IN_FOREST 0x00000020
160 #define DS_DOMAIN_TRUST_ATTRIB_EXTERNAL 0x00000040
164 /* DS_Q_ENUM_DOM_TRUSTS - DsEnumerateDomainTrusts() request */
171 } DS_Q_ENUM_DOM_TRUSTS;
173 /* DS_R_ENUM_DOM_TRUSTS - DsEnumerateDomainTrusts() response */
177 DS_DOMAIN_TRUSTS_CTR domains;
181 } DS_R_ENUM_DOM_TRUSTS;
184 #endif /* _RPC_DS_H */