xref: /netbsd-src/external/gpl3/gcc/dist/libphobos/libdruntime/core/sys/windows/rpcdce.d (revision 0a3071956a3a9fdebdbf7f338cf2d439b45fc728)
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