1 | #include "idl_types.h"
|
---|
2 | import "lsa.idl", "netlogon.idl", "misc.idl", "security.idl", "idmap.idl";
|
---|
3 |
|
---|
4 | [
|
---|
5 | uuid("bf09192c-ed60-4928-9dff-d0d7bcb03ed8"),
|
---|
6 | endpoint("ncalrpc:"),
|
---|
7 | pointer_default(unique),
|
---|
8 | version(1.0),
|
---|
9 | helpstring("winbind parent-child protocol"),
|
---|
10 | no_srv_register
|
---|
11 | ]
|
---|
12 | interface wbint
|
---|
13 | {
|
---|
14 | void wbint_Ping(
|
---|
15 | [in] uint32 in_data,
|
---|
16 | [out] uint32 *out_data
|
---|
17 | );
|
---|
18 |
|
---|
19 | NTSTATUS wbint_LookupSid(
|
---|
20 | [in] dom_sid *sid,
|
---|
21 | [out] lsa_SidType *type,
|
---|
22 | [out,string,charset(UTF8)] char **domain,
|
---|
23 | [out,string,charset(UTF8)] char **name
|
---|
24 | );
|
---|
25 |
|
---|
26 | NTSTATUS wbint_LookupSids(
|
---|
27 | [in] lsa_SidArray *sids,
|
---|
28 | [out,ref] lsa_RefDomainList *domains,
|
---|
29 | [out,ref] lsa_TransNameArray *names
|
---|
30 | );
|
---|
31 |
|
---|
32 | NTSTATUS wbint_LookupName(
|
---|
33 | [in,string,charset(UTF8)] char *domain,
|
---|
34 | [in,string,charset(UTF8)] char *name,
|
---|
35 | [in] uint32 flags,
|
---|
36 | [out] lsa_SidType *type,
|
---|
37 | [out] dom_sid *sid
|
---|
38 | );
|
---|
39 |
|
---|
40 | NTSTATUS wbint_Sid2Uid(
|
---|
41 | [in,unique,string,charset(UTF8)] char *dom_name,
|
---|
42 | [in] dom_sid *sid,
|
---|
43 | [out] hyper *uid
|
---|
44 | );
|
---|
45 |
|
---|
46 | NTSTATUS wbint_Sid2Gid(
|
---|
47 | [in,unique,string,charset(UTF8)] char *dom_name,
|
---|
48 | [in] dom_sid *sid,
|
---|
49 | [out] hyper *gid
|
---|
50 | );
|
---|
51 |
|
---|
52 | typedef struct {
|
---|
53 | id_type type;
|
---|
54 | uint32 domain_index;
|
---|
55 | uint32 rid;
|
---|
56 | hyper unix_id;
|
---|
57 | } wbint_TransID;
|
---|
58 |
|
---|
59 | typedef struct {
|
---|
60 | uint32 num_ids;
|
---|
61 | [size_is(num_ids)] wbint_TransID ids[];
|
---|
62 | } wbint_TransIDArray;
|
---|
63 |
|
---|
64 | NTSTATUS wbint_Sids2UnixIDs(
|
---|
65 | [in] lsa_RefDomainList *domains,
|
---|
66 | [in,out] wbint_TransIDArray *ids
|
---|
67 | );
|
---|
68 |
|
---|
69 | NTSTATUS wbint_Uid2Sid(
|
---|
70 | [in,unique,string,charset(UTF8)] char *dom_name,
|
---|
71 | [in] hyper uid,
|
---|
72 | [out] dom_sid *sid
|
---|
73 | );
|
---|
74 |
|
---|
75 | NTSTATUS wbint_Gid2Sid(
|
---|
76 | [in,unique,string,charset(UTF8)] char *dom_name,
|
---|
77 | [in] hyper gid,
|
---|
78 | [out] dom_sid *sid
|
---|
79 | );
|
---|
80 |
|
---|
81 | NTSTATUS wbint_AllocateUid(
|
---|
82 | [out] hyper *uid
|
---|
83 | );
|
---|
84 |
|
---|
85 | NTSTATUS wbint_AllocateGid(
|
---|
86 | [out] hyper *gid
|
---|
87 | );
|
---|
88 |
|
---|
89 | typedef [public] struct {
|
---|
90 | [string,charset(UTF8)] char *acct_name;
|
---|
91 | [string,charset(UTF8)] char *full_name;
|
---|
92 | [string,charset(UTF8)] char *homedir;
|
---|
93 | [string,charset(UTF8)] char *shell;
|
---|
94 | hyper primary_gid;
|
---|
95 | dom_sid user_sid;
|
---|
96 | dom_sid group_sid;
|
---|
97 | } wbint_userinfo;
|
---|
98 |
|
---|
99 | NTSTATUS wbint_QueryUser(
|
---|
100 | [in] dom_sid *sid,
|
---|
101 | [out] wbint_userinfo *info
|
---|
102 | );
|
---|
103 |
|
---|
104 | typedef [public] struct {
|
---|
105 | uint32 num_sids;
|
---|
106 | [size_is(num_sids)] dom_sid sids[];
|
---|
107 | } wbint_SidArray;
|
---|
108 |
|
---|
109 | typedef [public] struct {
|
---|
110 | uint32 num_rids;
|
---|
111 | [size_is(num_rids)] uint32 rids[];
|
---|
112 | } wbint_RidArray;
|
---|
113 |
|
---|
114 | NTSTATUS wbint_LookupUserAliases(
|
---|
115 | [in] wbint_SidArray *sids,
|
---|
116 | [out] wbint_RidArray *rids
|
---|
117 | );
|
---|
118 |
|
---|
119 | NTSTATUS wbint_LookupUserGroups(
|
---|
120 | [in] dom_sid *sid,
|
---|
121 | [out] wbint_SidArray *sids
|
---|
122 | );
|
---|
123 |
|
---|
124 | NTSTATUS wbint_QuerySequenceNumber(
|
---|
125 | [out] uint32 *sequence
|
---|
126 | );
|
---|
127 |
|
---|
128 | typedef [public] struct {
|
---|
129 | dom_sid sid;
|
---|
130 | lsa_SidType type;
|
---|
131 | [string,charset(UTF8)] char *name;
|
---|
132 | } wbint_Principal;
|
---|
133 |
|
---|
134 | typedef [public] struct {
|
---|
135 | int num_principals;
|
---|
136 | [size_is(num_principals)] wbint_Principal principals[];
|
---|
137 | } wbint_Principals;
|
---|
138 |
|
---|
139 | NTSTATUS wbint_LookupGroupMembers(
|
---|
140 | [in] dom_sid *sid,
|
---|
141 | [in] lsa_SidType type,
|
---|
142 | [out] wbint_Principals *members
|
---|
143 | );
|
---|
144 |
|
---|
145 | typedef [public] struct {
|
---|
146 | uint32 num_userinfos;
|
---|
147 | [size_is(num_userinfos)] wbint_userinfo userinfos[];
|
---|
148 | } wbint_userinfos;
|
---|
149 |
|
---|
150 | NTSTATUS wbint_QueryUserList(
|
---|
151 | [out] wbint_userinfos *users
|
---|
152 | );
|
---|
153 |
|
---|
154 | NTSTATUS wbint_QueryGroupList(
|
---|
155 | [out] wbint_Principals *groups
|
---|
156 | );
|
---|
157 |
|
---|
158 | NTSTATUS wbint_DsGetDcName(
|
---|
159 | [in,string,charset(UTF8)] char *domain_name,
|
---|
160 | [in,unique] GUID *domain_guid,
|
---|
161 | [in,string,unique,charset(UTF8)] char *site_name,
|
---|
162 | [in] uint32 flags,
|
---|
163 | [out] netr_DsRGetDCNameInfo **dc_info
|
---|
164 | );
|
---|
165 |
|
---|
166 | NTSTATUS wbint_LookupRids(
|
---|
167 | [in] dom_sid *domain_sid,
|
---|
168 | [in] wbint_RidArray *rids,
|
---|
169 | [out,string,charset(UTF8)] char **domain_name,
|
---|
170 | [out] wbint_Principals *names
|
---|
171 | );
|
---|
172 |
|
---|
173 | NTSTATUS wbint_CheckMachineAccount(
|
---|
174 | );
|
---|
175 |
|
---|
176 | NTSTATUS wbint_ChangeMachineAccount(
|
---|
177 | );
|
---|
178 |
|
---|
179 | NTSTATUS wbint_PingDc(
|
---|
180 | );
|
---|
181 | }
|
---|