1 /**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7 * Source: $(DRUNTIMESRC core/sys/windows/_rpcdce.d)
8 */
9 module core.sys.windows.rpcdce;
version(Windows)10 version (Windows):
11 @system:
12
13 version (ANSI) {} else version = Unicode;
14 pragma(lib, "Rpcrt4");
15
16 // TODO: I think MinGW got this wrong. RPC_UNICODE_SUPPORTED should be
17 // replaced aliases for version (Unicode)
18
19 public import core.sys.windows.rpcdcep;
20 import core.sys.windows.basetyps, core.sys.windows.w32api, core.sys.windows.windef;
21
22 // FIXME: clean up Windows version support
23
24 alias UUID uuid_t;
25 alias UUID_VECTOR uuid_vector_t;
26 alias void RPC_MGR_EPV;
27
28 // for RpcMgmtSetComTimeout()
29 enum : uint {
30 RPC_C_BINDING_MIN_TIMEOUT = 0,
31 RPC_C_BINDING_DEFAULT_TIMEOUT = 5,
32 RPC_C_BINDING_MAX_TIMEOUT = 9,
33 RPC_C_BINDING_INFINITE_TIMEOUT = 10
34 }
35
36 enum RPC_C_CANCEL_INFINITE_TIMEOUT= -1;
37 enum RPC_C_LISTEN_MAX_CALLS_DEFAULT=1234;
38 enum RPC_C_PROTSEQ_MAX_REQS_DEFAULT=10;
39 enum RPC_C_BIND_TO_ALL_NICS=1;
40 enum RPC_C_USE_INTERNET_PORT=1;
41 enum RPC_C_USE_INTRANET_PORT=2;
42
43 // for RPC_STATS_VECTOR, used by RpcMgmyInqStats
44 enum : uint {
45 RPC_C_STATS_CALLS_IN = 0,
46 RPC_C_STATS_CALLS_OUT,
47 RPC_C_STATS_PKTS_IN,
48 RPC_C_STATS_PKTS_OUT
49 }
50
51 enum RPC_IF_AUTOLISTEN=0x0001;
52 enum RPC_IF_OLE=2;
53 enum RPC_C_MGMT_INQ_IF_IDS=0;
54 enum RPC_C_MGMT_INQ_PRINC_NAME=1;
55 enum RPC_C_MGMT_INQ_STATS=2;
56 enum RPC_C_MGMT_IS_SERVER_LISTEN=3;
57 enum RPC_C_MGMT_STOP_SERVER_LISTEN=4;
58
59 // Inquiry Type for RpcMgmtEpEltInqBegin()
60 enum : uint {
61 RPC_C_EP_ALL_ELTS = 0,
62 RPC_C_EP_MATCH_BY_IF,
63 RPC_C_EP_MATCH_BY_OBJ,
64 RPC_C_EP_MATCH_BY_BOTH
65 }
66
67 // for RpcMgmtEpEltInqNext()
68 enum : uint {
69 RPC_C_VERS_ALL = 1,
70 RPC_C_VERS_COMPATIBLE,
71 RPC_C_VERS_EXACT,
72 RPC_C_VERS_MAJOR_ONLY,
73 RPC_C_VERS_UPTO
74 }
75
76 enum DCE_C_ERROR_STRING_LEN=256;
77 enum RPC_C_PARM_MAX_PACKET_LENGTH=1;
78 enum RPC_C_PARM_BUFFER_LENGTH=2;
79 enum RPC_C_AUTHN_LEVEL_DEFAULT=0;
80 enum RPC_C_AUTHN_LEVEL_NONE=1;
81 enum RPC_C_AUTHN_LEVEL_CONNECT=2;
82 enum RPC_C_AUTHN_LEVEL_CALL=3;
83 enum RPC_C_AUTHN_LEVEL_PKT=4;
84 enum RPC_C_AUTHN_LEVEL_PKT_INTEGRITY=5;
85 enum RPC_C_AUTHN_LEVEL_PKT_PRIVACY=6;
86 enum RPC_C_IMP_LEVEL_ANONYMOUS=1;
87 enum RPC_C_IMP_LEVEL_IDENTIFY=2;
88 enum RPC_C_IMP_LEVEL_IMPERSONATE=3;
89 enum RPC_C_IMP_LEVEL_DELEGATE=4;
90 enum RPC_C_QOS_IDENTITY_STATIC=0;
91 enum RPC_C_QOS_IDENTITY_DYNAMIC=1;
92 enum RPC_C_QOS_CAPABILITIES_DEFAULT=0;
93 enum RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH=1;
94
95 // These enums were buggy in MinGW !
96 enum RPC_C_PROTECT_LEVEL_DEFAULT = RPC_C_AUTHN_LEVEL_DEFAULT;
97 enum RPC_C_PROTECT_LEVEL_NONE = RPC_C_AUTHN_LEVEL_NONE;
98 enum RPC_C_PROTECT_LEVEL_CONNECT = RPC_C_AUTHN_LEVEL_CONNECT;
99 enum RPC_C_PROTECT_LEVEL_CALL = RPC_C_AUTHN_LEVEL_CALL;
100 enum RPC_C_PROTECT_LEVEL_PKT = RPC_C_AUTHN_LEVEL_PKT;
101 enum RPC_C_PROTECT_LEVEL_PKT_INTEGRITY = RPC_C_AUTHN_LEVEL_PKT_INTEGRITY;
102 enum RPC_C_PROTECT_LEVEL_PKT_PRIVACY = RPC_C_AUTHN_LEVEL_PKT_PRIVACY;
103
104 enum RPC_C_AUTHN_NONE=0;
105 enum RPC_C_AUTHN_DCE_PRIVATE=1;
106 enum RPC_C_AUTHN_DCE_PUBLIC=2;
107 enum RPC_C_AUTHN_DEC_PUBLIC=4;
108 enum RPC_C_AUTHN_WINNT=10;
109 enum RPC_C_AUTHN_DEFAULT=0xFFFFFFFF;
110 //const RPC_C_SECURITY_QOS_VERSION=L; // FIXME(MinGW): This is nonsense!
111 enum SEC_WINNT_AUTH_IDENTITY_ANSI=0x1;
112 enum SEC_WINNT_AUTH_IDENTITY_UNICODE=0x2;
113 enum RPC_C_AUTHZ_NONE=0;
114 enum RPC_C_AUTHZ_NAME=1;
115 enum RPC_C_AUTHZ_DCE=2;
116 enum RPC_C_AUTHZ_DEFAULT=0xFFFFFFFF;
117
118 alias I_RPC_HANDLE RPC_BINDING_HANDLE;
119 alias RPC_BINDING_HANDLE handle_t;
120
121 struct RPC_BINDING_VECTOR {
122 uint Count;
123 RPC_BINDING_HANDLE[1] BindingH;
124 }
125
126 alias RPC_BINDING_HANDLE rpc_binding_handle_t;
127 alias RPC_BINDING_VECTOR rpc_binding_vector_t;
128
129
130 struct UUID_VECTOR {
131 uint Count;
132 UUID*[1] Uuid;
133 }
134
135 alias void* RPC_IF_HANDLE;
136
137 struct RPC_IF_ID {
138 UUID Uuid;
139 ushort VersMajor;
140 ushort VersMinor;
141 }
142
143 struct RPC_POLICY {
144 uint Length;
145 uint EndpointFlags;
146 uint NICFlags;
147 }
148 alias RPC_POLICY* PRPC_POLICY;
149
150 extern (Windows) {
151 alias void function(UUID*, UUID*, RPC_STATUS*) RPC_OBJECT_INQ_FN;
152 alias RPC_STATUS function(RPC_IF_HANDLE, void*) RPC_IF_CALLBACK_FN;
153 }
154
155 struct RPC_STATS_VECTOR {
156 uint Count;
157 uint[1] Stats;
158 }
159
160 struct RPC_IF_ID_VECTOR {
161 uint Count;
162 RPC_IF_ID*[1] IfId;
163 }
164 mixin DECLARE_HANDLE!("RPC_AUTH_IDENTITY_HANDLE");
165 mixin DECLARE_HANDLE!("RPC_AUTHZ_HANDLE");
166
167 struct RPC_SECURITY_QOS {
168 uint Version;
169 uint Capabilities;
170 uint IdentityTracking;
171 uint ImpersonationType;
172 }
173 alias RPC_SECURITY_QOS* PRPC_SECURITY_QOS;
174
175 struct SEC_WINNT_AUTH_IDENTITY_W {
176 ushort* User;
177 uint UserLength;
178 ushort* Domain;
179 uint DomainLength;
180 ushort* Password;
181 uint PasswordLength;
182 uint Flags;
183 }
184 alias SEC_WINNT_AUTH_IDENTITY_W* PSEC_WINNT_AUTH_IDENTITY_W;
185
186 struct SEC_WINNT_AUTH_IDENTITY_A {
187 ubyte* User;
188 uint UserLength;
189 ubyte* Domain;
190 uint DomainLength;
191 ubyte* Password;
192 uint PasswordLength;
193 uint Flags;
194 }
195 alias SEC_WINNT_AUTH_IDENTITY_A* PSEC_WINNT_AUTH_IDENTITY_A;
196
197 struct RPC_CLIENT_INFORMATION1 {
198 ubyte* UserName;
199 ubyte* ComputerName;
200 ushort Privilege;
201 uint AuthFlags;
202 }
203 alias RPC_CLIENT_INFORMATION1* PRPC_CLIENT_INFORMATION1;
204 alias I_RPC_HANDLE* RPC_EP_INQ_HANDLE;
205 extern (Windows) {
206 alias int function(RPC_BINDING_HANDLE, uint, RPC_STATUS*) RPC_MGMT_AUTHORIZATION_FN;
207 }
208
209 struct RPC_PROTSEQ_VECTORA {
210 uint Count;
211 ubyte*[1] Protseq;
212 }
213
214 struct RPC_PROTSEQ_VECTORW {
215 uint Count;
216 ushort*[1] Protseq;
217 }
218
219 extern (Windows) {
220 RPC_STATUS RpcBindingFromStringBindingA(char*, RPC_BINDING_HANDLE*);
221 RPC_STATUS RpcBindingFromStringBindingW(wchar*, RPC_BINDING_HANDLE*);
222 RPC_STATUS RpcBindingToStringBindingA(RPC_BINDING_HANDLE, char**);
223 RPC_STATUS RpcBindingToStringBindingW(RPC_BINDING_HANDLE, wchar**);
224 RPC_STATUS RpcStringBindingComposeA(char*, char*, char*, char*, char*, char**);
225 RPC_STATUS RpcStringBindingComposeW(wchar*, wchar*, wchar*, wchar*, wchar*, wchar**);
226 RPC_STATUS RpcStringBindingParseA(char*, char**, char**, char**, char**, char**);
227 RPC_STATUS RpcStringBindingParseW(wchar*, wchar**, wchar**, wchar**, wchar**, wchar**);
228 RPC_STATUS RpcStringFreeA(char**);
229 RPC_STATUS RpcStringFreeW(wchar**);
230 RPC_STATUS RpcNetworkIsProtseqValidA(char*);
231 RPC_STATUS RpcNetworkIsProtseqValidW(wchar*);
232 RPC_STATUS RpcNetworkInqProtseqsA(RPC_PROTSEQ_VECTORA**);
233 RPC_STATUS RpcNetworkInqProtseqsW(RPC_PROTSEQ_VECTORW**);
234 RPC_STATUS RpcProtseqVectorFreeA(RPC_PROTSEQ_VECTORA**);
235 RPC_STATUS RpcProtseqVectorFreeW(RPC_PROTSEQ_VECTORW**);
236 RPC_STATUS RpcServerUseProtseqA(char*, uint, void*);
237 RPC_STATUS RpcServerUseProtseqW(wchar*, uint, void*);
238 RPC_STATUS RpcServerUseProtseqExA(char*, uint MaxCalls, void*, PRPC_POLICY);
239 RPC_STATUS RpcServerUseProtseqExW(wchar*, uint, void*, PRPC_POLICY);
240 RPC_STATUS RpcServerUseProtseqEpA(char*, uint, char*, void*);
241 RPC_STATUS RpcServerUseProtseqEpExA(char*, uint, char*, void*, PRPC_POLICY);
242 RPC_STATUS RpcServerUseProtseqEpW(wchar*, uint, wchar*, void*);
243 RPC_STATUS RpcServerUseProtseqEpExW(wchar*, uint, wchar*, void*, PRPC_POLICY);
244 RPC_STATUS RpcServerUseProtseqIfA(char*, uint, RPC_IF_HANDLE, void*);
245 RPC_STATUS RpcServerUseProtseqIfExA(char*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY);
246 RPC_STATUS RpcServerUseProtseqIfW(wchar*, uint, RPC_IF_HANDLE, void*);
247 RPC_STATUS RpcServerUseProtseqIfExW(wchar*, uint, RPC_IF_HANDLE, void*, PRPC_POLICY);
248 RPC_STATUS RpcMgmtInqServerPrincNameA(RPC_BINDING_HANDLE, uint, char**);
249 RPC_STATUS RpcMgmtInqServerPrincNameW(RPC_BINDING_HANDLE, uint, wchar**);
250 RPC_STATUS RpcServerInqDefaultPrincNameA(uint, char**);
251 RPC_STATUS RpcServerInqDefaultPrincNameW(uint, wchar**);
252 RPC_STATUS RpcNsBindingInqEntryNameA(RPC_BINDING_HANDLE, uint, char**);
253 RPC_STATUS RpcNsBindingInqEntryNameW(RPC_BINDING_HANDLE, uint, wchar**);
254 RPC_STATUS RpcBindingInqAuthClientA(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, char**, uint*, uint*, uint*);
255 RPC_STATUS RpcBindingInqAuthClientW(RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE*, wchar**, uint*, uint*, uint*);
256 RPC_STATUS RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*);
257 RPC_STATUS RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE, wchar**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*);
258 RPC_STATUS RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint);
259 RPC_STATUS RpcBindingSetAuthInfoExA(RPC_BINDING_HANDLE, char*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint, RPC_SECURITY_QOS*);
260 RPC_STATUS RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE, wchar*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint);
261 RPC_STATUS RpcBindingSetAuthInfoExW(RPC_BINDING_HANDLE, wchar*, uint, uint, RPC_AUTH_IDENTITY_HANDLE, uint, RPC_SECURITY_QOS*);
262 RPC_STATUS RpcBindingInqAuthInfoExA(RPC_BINDING_HANDLE, char**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*, uint, RPC_SECURITY_QOS*);
263 RPC_STATUS RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE, wchar**, uint*, uint*, RPC_AUTH_IDENTITY_HANDLE*, uint*, uint, RPC_SECURITY_QOS*);
264 alias void function(void*, wchar*, uint, void**, RPC_STATUS*) RPC_AUTH_KEY_RETRIEVAL_FN;
265 RPC_STATUS RpcServerRegisterAuthInfoA(char*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*);
266 RPC_STATUS RpcServerRegisterAuthInfoW(wchar*, uint, RPC_AUTH_KEY_RETRIEVAL_FN, void*);
267 RPC_STATUS UuidToStringA(UUID*, char**);
268 RPC_STATUS UuidFromStringA(char*, UUID*);
269 RPC_STATUS UuidToStringW(UUID*, wchar**);
270 RPC_STATUS UuidFromStringW(wchar*, UUID*);
271 RPC_STATUS RpcEpRegisterNoReplaceA(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*);
272 RPC_STATUS RpcEpRegisterNoReplaceW(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, wchar*);
273 RPC_STATUS RpcEpRegisterA(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, char*);
274 RPC_STATUS RpcEpRegisterW(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*, wchar*);
275 RPC_STATUS DceErrorInqTextA(RPC_STATUS, char*);
276 RPC_STATUS DceErrorInqTextW(RPC_STATUS, wchar*);
277 RPC_STATUS RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, UUID*, char**);
278 RPC_STATUS RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE*, UUID*, wchar**);
279
280 // MinGW erroneously had these in rpc.h
281 RPC_STATUS RpcImpersonateClient(RPC_BINDING_HANDLE);
282 RPC_STATUS RpcRevertToSelf();
283 }
284
version(Unicode)285 version (Unicode) {
286 alias RPC_PROTSEQ_VECTORW RPC_PROTSEQ_VECTOR;
287 alias SEC_WINNT_AUTH_IDENTITY_W SEC_WINNT_AUTH_IDENTITY;
288 alias PSEC_WINNT_AUTH_IDENTITY_W PSEC_WINNT_AUTH_IDENTITY;
289 alias RpcMgmtEpEltInqNextW RpcMgmtEpEltInqNext;
290 alias RpcBindingFromStringBindingW RpcBindingFromStringBinding;
291 alias RpcBindingToStringBindingW RpcBindingToStringBinding;
292 alias RpcStringBindingComposeW RpcStringBindingCompose;
293 alias RpcStringBindingParseW RpcStringBindingParse;
294 alias RpcStringFreeW RpcStringFree;
295 alias RpcNetworkIsProtseqValidW RpcNetworkIsProtseqValid;
296 alias RpcNetworkInqProtseqsW RpcNetworkInqProtseqs;
297 alias RpcProtseqVectorFreeW RpcProtseqVectorFree;
298 alias RpcServerUseProtseqW RpcServerUseProtseq;
299 alias RpcServerUseProtseqExW RpcServerUseProtseqEx;
300 alias RpcServerUseProtseqEpW RpcServerUseProtseqEp;
301 alias RpcServerUseProtseqEpExW RpcServerUseProtseqEpEx;
302 alias RpcServerUseProtseqIfW RpcServerUseProtseqIf;
303 alias RpcServerUseProtseqIfExW RpcServerUseProtseqIfEx;
304 alias RpcMgmtInqServerPrincNameW RpcMgmtInqServerPrincName;
305 alias RpcServerInqDefaultPrincNameW RpcServerInqDefaultPrincName;
306 alias RpcNsBindingInqEntryNameW RpcNsBindingInqEntryName;
307 alias RpcBindingInqAuthClientW RpcBindingInqAuthClient;
308 alias RpcBindingInqAuthInfoW RpcBindingInqAuthInfo;
309 alias RpcBindingSetAuthInfoW RpcBindingSetAuthInfo;
310 alias RpcServerRegisterAuthInfoW RpcServerRegisterAuthInfo;
311 alias RpcBindingInqAuthInfoExW RpcBindingInqAuthInfoEx;
312 alias RpcBindingSetAuthInfoExW RpcBindingSetAuthInfoEx;
313 alias UuidFromStringW UuidFromString;
314 alias UuidToStringW UuidToString;
315 alias RpcEpRegisterNoReplaceW RpcEpRegisterNoReplace;
316 alias RpcEpRegisterW RpcEpRegister;
317 alias DceErrorInqTextW DceErrorInqText;
318 } else { // Ansi
319 alias RPC_PROTSEQ_VECTORA RPC_PROTSEQ_VECTOR;
320 alias SEC_WINNT_AUTH_IDENTITY_A SEC_WINNT_AUTH_IDENTITY;
321 alias PSEC_WINNT_AUTH_IDENTITY_A PSEC_WINNT_AUTH_IDENTITY;
322 alias RpcMgmtEpEltInqNextA RpcMgmtEpEltInqNext;
323 alias RpcBindingFromStringBindingA RpcBindingFromStringBinding;
324 alias RpcBindingToStringBindingA RpcBindingToStringBinding;
325 alias RpcStringBindingComposeA RpcStringBindingCompose;
326 alias RpcStringBindingParseA RpcStringBindingParse;
327 alias RpcStringFreeA RpcStringFree;
328 alias RpcNetworkIsProtseqValidA RpcNetworkIsProtseqValid;
329 alias RpcNetworkInqProtseqsA RpcNetworkInqProtseqs;
330 alias RpcProtseqVectorFreeA RpcProtseqVectorFree;
331 alias RpcServerUseProtseqA RpcServerUseProtseq;
332 alias RpcServerUseProtseqExA RpcServerUseProtseqEx;
333 alias RpcServerUseProtseqEpA RpcServerUseProtseqEp;
334 alias RpcServerUseProtseqEpExA RpcServerUseProtseqEpEx;
335 alias RpcServerUseProtseqIfA RpcServerUseProtseqIf;
336 alias RpcServerUseProtseqIfExA RpcServerUseProtseqIfEx;
337 alias RpcMgmtInqServerPrincNameA RpcMgmtInqServerPrincName;
338 alias RpcServerInqDefaultPrincNameA RpcServerInqDefaultPrincName;
339 alias RpcNsBindingInqEntryNameA RpcNsBindingInqEntryName;
340 alias RpcBindingInqAuthClientA RpcBindingInqAuthClient;
341 alias RpcBindingInqAuthInfoA RpcBindingInqAuthInfo;
342 alias RpcBindingSetAuthInfoA RpcBindingSetAuthInfo;
343 alias RpcServerRegisterAuthInfoA RpcServerRegisterAuthInfo;
344 alias RpcBindingInqAuthInfoExA RpcBindingInqAuthInfoEx;
345 alias RpcBindingSetAuthInfoExA RpcBindingSetAuthInfoEx;
346 alias UuidFromStringA UuidFromString;
347 alias UuidToStringA UuidToString;
348 alias RpcEpRegisterNoReplaceA RpcEpRegisterNoReplace;
349 alias RpcEpRegisterA RpcEpRegister;
350 alias DceErrorInqTextA DceErrorInqText;
351 } //#endif // UNICODE
352
353 extern (Windows) {
354 RPC_STATUS RpcBindingCopy(RPC_BINDING_HANDLE, RPC_BINDING_HANDLE*);
355 RPC_STATUS RpcBindingFree(RPC_BINDING_HANDLE*);
356 RPC_STATUS RpcBindingInqObject(RPC_BINDING_HANDLE, UUID*);
357 RPC_STATUS RpcBindingReset(RPC_BINDING_HANDLE);
358 RPC_STATUS RpcBindingSetObject(RPC_BINDING_HANDLE, UUID*);
359 RPC_STATUS RpcMgmtInqDefaultProtectLevel(uint, uint*);
360 RPC_STATUS RpcBindingVectorFree(RPC_BINDING_VECTOR**);
361 RPC_STATUS RpcIfInqId(RPC_IF_HANDLE, RPC_IF_ID*);
362 RPC_STATUS RpcMgmtInqComTimeout(RPC_BINDING_HANDLE, uint*);
363 RPC_STATUS RpcMgmtSetComTimeout(RPC_BINDING_HANDLE, uint);
364 RPC_STATUS RpcMgmtSetCancelTimeout(int Timeout);
365 RPC_STATUS RpcObjectInqType(UUID*, UUID*);
366 RPC_STATUS RpcObjectSetInqFn(RPC_OBJECT_INQ_FN*);
367 RPC_STATUS RpcObjectSetType(UUID*, UUID*);
368 RPC_STATUS RpcProtseqVectorFree(RPC_PROTSEQ_VECTOR**);
369 RPC_STATUS RpcServerInqIf(RPC_IF_HANDLE, UUID*, RPC_MGR_EPV**);
370 RPC_STATUS RpcServerListen(uint, uint, uint);
371 RPC_STATUS RpcServerRegisterIf(RPC_IF_HANDLE, UUID*, RPC_MGR_EPV*);
372 RPC_STATUS RpcServerRegisterIfEx(RPC_IF_HANDLE, UUID*, RPC_MGR_EPV*, uint, uint, RPC_IF_CALLBACK_FN*);
373 RPC_STATUS RpcServerRegisterIf2(RPC_IF_HANDLE, UUID*, RPC_MGR_EPV*, uint, uint, uint, RPC_IF_CALLBACK_FN*);
374 RPC_STATUS RpcServerUnregisterIf(RPC_IF_HANDLE, UUID*, uint);
375 RPC_STATUS RpcServerUseAllProtseqs(uint, void*);
376 RPC_STATUS RpcServerUseAllProtseqsEx(uint, void*, PRPC_POLICY);
377 RPC_STATUS RpcServerUseAllProtseqsIf(uint, RPC_IF_HANDLE, void*);
378 RPC_STATUS RpcServerUseAllProtseqsIfEx(uint, RPC_IF_HANDLE, void*, PRPC_POLICY);
379 RPC_STATUS RpcMgmtStatsVectorFree(RPC_STATS_VECTOR**);
380 RPC_STATUS RpcMgmtInqStats(RPC_BINDING_HANDLE, RPC_STATS_VECTOR**);
381 RPC_STATUS RpcMgmtIsServerListening(RPC_BINDING_HANDLE);
382 RPC_STATUS RpcMgmtStopServerListening(RPC_BINDING_HANDLE);
383 RPC_STATUS RpcMgmtWaitServerListen();
384 RPC_STATUS RpcMgmtSetServerStackSize(uint);
385 void RpcSsDontSerializeContext();
386 RPC_STATUS RpcMgmtEnableIdleCleanup();
387 RPC_STATUS RpcMgmtInqIfIds(RPC_BINDING_HANDLE, RPC_IF_ID_VECTOR**);
388 RPC_STATUS RpcIfIdVectorFree(RPC_IF_ID_VECTOR**);
389 RPC_STATUS RpcEpResolveBinding(RPC_BINDING_HANDLE, RPC_IF_HANDLE);
390 RPC_STATUS RpcBindingServerFromClient(RPC_BINDING_HANDLE, RPC_BINDING_HANDLE*);
391
392 // never returns
393 void RpcRaiseException(RPC_STATUS);
394 RPC_STATUS RpcTestCancel();
395 RPC_STATUS RpcCancelThread(void*);
396 RPC_STATUS UuidCreate(UUID*);
397 int UuidCompare(UUID*, UUID*, RPC_STATUS*);
398 RPC_STATUS UuidCreateNil(UUID*);
399 int UuidEqual(UUID*, UUID*, RPC_STATUS*);
400 ushort UuidHash(UUID*, RPC_STATUS*);
401 int UuidIsNil(UUID*, RPC_STATUS*);
402 RPC_STATUS RpcEpUnregister(RPC_IF_HANDLE, RPC_BINDING_VECTOR*, UUID_VECTOR*);
403 RPC_STATUS RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE, uint, RPC_IF_ID*, uint, UUID*, RPC_EP_INQ_HANDLE*);
404 RPC_STATUS RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE*);
405 RPC_STATUS RpcMgmtEpUnregister(RPC_BINDING_HANDLE, RPC_IF_ID*, RPC_BINDING_HANDLE, UUID*);
406 RPC_STATUS RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN);
407 RPC_STATUS RpcMgmtInqParameter(uint, uint*);
408 RPC_STATUS RpcMgmtSetParameter(uint, uint);
409 RPC_STATUS RpcMgmtBindingInqParameter(RPC_BINDING_HANDLE, uint, uint*);
410 RPC_STATUS RpcMgmtBindingSetParameter(RPC_BINDING_HANDLE, uint, uint);
411
412 //static if (_WIN32_WINNT >= 0x500) {
413 RPC_STATUS UuidCreateSequential(UUID*);
414 //}
415 }
416