2 import
"lsa.idl", "netlogon.idl", "misc.idl", "security.idl", "idmap.idl";
5 uuid("bf09192c-ed60-4928-9dff-d0d7bcb03ed8"),
7 pointer_default(unique),
9 helpstring("winbind parent-child protocol"),
18 [out] uint32
*out_data
21 NTSTATUS wbint_LookupSid
(
23 [out] lsa_SidType
*type
,
24 [out,string,charset
(UTF8
)] char **domain
,
25 [out,string,charset
(UTF8
)] char **name
28 NTSTATUS wbint_LookupSids
(
29 [in] lsa_SidArray
*sids
,
30 [out,ref] lsa_RefDomainList
*domains
,
31 [out,ref] lsa_TransNameArray
*names
34 NTSTATUS wbint_LookupName
(
35 [in,string,charset
(UTF8
)] char *domain
,
36 [in,string,charset
(UTF8
)] char *name
,
38 [out] lsa_SidType
*type
,
51 [size_is(num_ids
)] wbint_TransID ids
[];
54 NTSTATUS wbint_Sids2UnixIDs
(
55 [in] lsa_RefDomainList
*domains
,
56 [in,out] wbint_TransIDArray
*ids
59 NTSTATUS wbint_UnixIDs2Sids
(
60 [in,string,charset
(UTF8
)] char *domain_name
,
61 [in] dom_sid domain_sid
,
63 [in,out] unixid xids
[num_ids
],
64 [out] dom_sid sids
[num_ids
]
67 NTSTATUS wbint_AllocateUid
(
71 NTSTATUS wbint_AllocateGid
(
75 typedef [public] struct {
76 [string,charset
(UTF8
)] char *domain_name
;
77 [string,charset
(UTF8
)] char *acct_name
;
78 [string,charset
(UTF8
)] char *full_name
;
79 [string,charset
(UTF8
)] char *homedir
;
80 [string,charset
(UTF8
)] char *shell
;
83 [string,charset
(UTF8
)] char *primary_group_name
;
88 NTSTATUS wbint_GetNssInfo
(
89 [in,out] wbint_userinfo
*info
92 typedef [public] struct {
94 [size_is(num_sids
)] dom_sid sids
[];
97 typedef [public] struct {
99 [size_is(num_rids
)] uint32 rids
[];
102 NTSTATUS wbint_LookupUserAliases
(
103 [in] wbint_SidArray
*sids
,
104 [out] wbint_RidArray
*rids
107 NTSTATUS wbint_LookupUserGroups
(
109 [out] wbint_SidArray
*sids
112 NTSTATUS wbint_QuerySequenceNumber
(
113 [out] uint32
*sequence
116 typedef [public] struct {
119 [string,charset
(UTF8
)] char *name
;
122 typedef [public] struct {
124 [size_is(num_principals
)] wbint_Principal principals
[];
127 NTSTATUS wbint_LookupGroupMembers
(
129 [in] lsa_SidType type
,
130 [out] wbint_Principals
*members
133 typedef [public] struct {
134 uint32 num_userinfos
;
135 [size_is(num_userinfos
)] wbint_userinfo userinfos
[];
138 NTSTATUS wbint_QueryGroupList
(
139 [out] wbint_Principals
*groups
142 NTSTATUS wbint_QueryUserRidList
(
143 [out] wbint_RidArray
*rids
146 NTSTATUS wbint_DsGetDcName
(
147 [in,string,charset
(UTF8
)] char *domain_name
,
148 [in,unique] GUID
*domain_guid
,
149 [in,string,unique,charset
(UTF8
)] char *site_name
,
151 [out] netr_DsRGetDCNameInfo
**dc_info
154 NTSTATUS wbint_LookupRids
(
155 [in] dom_sid
*domain_sid
,
156 [in] wbint_RidArray
*rids
,
157 [out,string,charset
(UTF8
)] char **domain_name
,
158 [out] wbint_Principals
*names
161 NTSTATUS wbint_CheckMachineAccount
(
164 NTSTATUS wbint_ChangeMachineAccount
(
167 NTSTATUS wbint_PingDc
(
168 [out,string,charset
(UTF8
)] char **dcname
171 /* Public methods available via IRPC */
173 typedef [switch_type(uint16
)] union netr_LogonLevel netr_LogonLevel
;
174 typedef [switch_type(uint16
)] union netr_Validation netr_Validation
;
177 * do a netr_LogonSamLogon() against the right DC
179 NTSTATUS winbind_SamLogon
(
180 [in] uint16 logon_level
,
181 [in] [switch_is(logon_level
)] netr_LogonLevel logon
,
182 [in] uint16 validation_level
,
183 [out] [switch_is(validation_level
)] netr_Validation validation
,
184 [out] uint8 authoritative
187 NTSTATUS winbind_DsrUpdateReadOnlyServerDnsRecords
(
188 [in,unique] [string,charset
(UTF16
)] uint16
*site_name
,
190 [in,out,ref] NL_DNS_NAME_INFO_ARRAY
*dns_names
194 * do a netr_LogonControl2Ex() against the right DC
196 typedef [v1_enum] enum netr_LogonControlCode netr_LogonControlCode
;
197 typedef [switch_type(netr_LogonControlCode
)] union netr_CONTROL_DATA_INFORMATION netr_CONTROL_DATA_INFORMATION
;
198 typedef [switch_type(uint32
)] union netr_CONTROL_QUERY_INFORMATION netr_CONTROL_QUERY_INFORMATION
;
200 WERROR winbind_LogonControl
(
201 [in] netr_LogonControlCode function_code
,
203 [in,ref][switch_is(function_code
)] netr_CONTROL_DATA_INFORMATION
*data
,
204 [out,ref][switch_is(level
)] netr_CONTROL_QUERY_INFORMATION
*query
208 * do a netr_GetForestTrustInformation() against the right DC
210 WERROR winbind_GetForestTrustInformation
(
211 [in,unique] [string,charset
(UTF16
)] uint16
*trusted_domain_name
,
213 [out,ref] lsa_ForestTrustInformation
**forest_trust_info
216 NTSTATUS winbind_SendToSam
(
217 [in] netr_SendToSamBase
message