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