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