comctl32: Use nameless unions/structs.
[wine.git] / include / rpcdce.h
blob79418f8084cf8586c9fccb4d49f6a6ad8048a969
1 /*
2 * Copyright (C) 2000 Francois Gouget
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_RPCDCE_H
20 #define __WINE_RPCDCE_H
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
26 #ifndef IN
27 #define IN
28 #endif
29 #ifndef OUT
30 #define OUT
31 #endif
32 #ifndef OPTIONAL
33 #define OPTIONAL
34 #endif
36 #include <specstrings.h>
38 #ifndef GUID_DEFINED
39 #include <guiddef.h>
40 #endif
42 #ifndef UUID_DEFINED
43 #define UUID_DEFINED
44 typedef GUID UUID;
45 #endif
47 typedef unsigned char* RPC_CSTR;
48 typedef unsigned short* RPC_WSTR;
49 typedef void* RPC_AUTH_IDENTITY_HANDLE;
50 typedef void* RPC_AUTHZ_HANDLE;
51 typedef void* RPC_IF_HANDLE;
52 typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
53 typedef RPC_BINDING_HANDLE handle_t;
54 #define rpc_binding_handle_t RPC_BINDING_HANDLE
55 #define RPC_MGR_EPV void
57 typedef struct _RPC_BINDING_VECTOR
59 ULONG Count;
60 RPC_BINDING_HANDLE BindingH[1];
61 } RPC_BINDING_VECTOR;
62 #define rpc_binding_vector_t RPC_BINDING_VECTOR
64 typedef struct _UUID_VECTOR
66 ULONG Count;
67 UUID *Uuid[1];
68 } UUID_VECTOR;
69 #define uuid_vector_t UUID_VECTOR
71 typedef struct _RPC_IF_ID
73 UUID Uuid;
74 unsigned short VersMajor;
75 unsigned short VersMinor;
76 } RPC_IF_ID;
78 typedef struct
80 ULONG Count;
81 RPC_IF_ID *IfId[1];
82 } RPC_IF_ID_VECTOR;
84 typedef struct
86 unsigned int Count;
87 ULONG Stats[1];
88 } RPC_STATS_VECTOR;
90 typedef struct _RPC_PROTSEQ_VECTORA
92 unsigned int Count;
93 unsigned char *Protseq[1];
94 } RPC_PROTSEQ_VECTORA;
96 typedef struct _RPC_PROTSEQ_VECTORW
98 unsigned int Count;
99 unsigned short *Protseq[1];
100 } RPC_PROTSEQ_VECTORW;
102 DECL_WINELIB_TYPE_AW(RPC_PROTSEQ_VECTOR)
104 typedef I_RPC_HANDLE *RPC_EP_INQ_HANDLE;
106 #define RPC_C_EP_ALL_ELTS 0
107 #define RPC_C_EP_MATCH_BY_IF 1
108 #define RPC_C_EP_MATCH_BY_OBJ 2
109 #define RPC_C_EP_MATCH_BY_BOTH 3
111 #define RPC_C_VERS_ALL 1
112 #define RPC_C_VERS_COMPATIBLE 2
113 #define RPC_C_VERS_EXACT 3
114 #define RPC_C_VERS_MAJOR_ONLY 4
115 #define RPC_C_VERS_UPTO 5
117 #define RPC_C_BINDING_INFINITE_TIMEOUT 10
118 #define RPC_C_BINDING_MIN_TIMEOUT 0
119 #define RPC_C_BINDING_DEFAULT_TIMEOUT 5
120 #define RPC_C_BINDING_MAX_TIMEOUT 9
122 #define RPC_C_CANCEL_INFINITE_TIMEOUT -1
124 #define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
125 #define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
127 #define RPC_PROTSEQ_TCP 0x1
128 #define RPC_PROTSEQ_NMP 0x2
129 #define RPC_PROTSEQ_LRPC 0x3
130 #define RPC_PROTSEQ_HTTP 0x4
132 /* RPC_POLICY EndpointFlags */
133 #define RPC_C_BIND_TO_ALL_NICS 0x1
134 #define RPC_C_USE_INTERNET_PORT 0x1
135 #define RPC_C_USE_INTRANET_PORT 0x2
136 #define RPC_C_DONT_FAIL 0x4
138 /* RPC_POLICY EndpointFlags specific to the Falcon/RPC transport */
139 #define RPC_C_MQ_TEMPORARY 0x0000
140 #define RPC_C_MQ_PERMANENT 0x0001
141 #define RPC_C_MQ_CLEAR_ON_OPEN 0x0002
142 #define RPC_C_MQ_USE_EXISTING_SECURITY 0x0004
143 #define RPC_C_MQ_AUTHN_LEVEL_NONE 0x0000
144 #define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY 0x0008
145 #define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY 0x0010
147 #define RPC_C_AUTHN_LEVEL_DEFAULT 0
148 #define RPC_C_AUTHN_LEVEL_NONE 1
149 #define RPC_C_AUTHN_LEVEL_CONNECT 2
150 #define RPC_C_AUTHN_LEVEL_CALL 3
151 #define RPC_C_AUTHN_LEVEL_PKT 4
152 #define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
153 #define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6
155 #define RPC_C_AUTHN_NONE 0
156 #define RPC_C_AUTHN_DCE_PRIVATE 1
157 #define RPC_C_AUTHN_DCE_PUBLIC 2
158 #define RPC_C_AUTHN_DEC_PUBLIC 4
159 #define RPC_C_AUTHN_GSS_NEGOTIATE 9
160 #define RPC_C_AUTHN_WINNT 10
161 #define RPC_C_AUTHN_GSS_SCHANNEL 14
162 #define RPC_C_AUTHN_GSS_KERBEROS 16
163 #define RPC_C_AUTHN_DPA 17
164 #define RPC_C_AUTHN_MSN 18
165 #define RPC_C_AUTHN_DIGEST 21
166 #define RPC_C_AUTHN_MQ 100
167 #define RPC_C_AUTHN_DEFAULT 0xffffffff
169 #define RPC_C_AUTHZ_NONE 0
170 #define RPC_C_AUTHZ_NAME 1
171 #define RPC_C_AUTHZ_DCE 2
172 #define RPC_C_AUTHZ_DEFAULT 0xffffffff
174 /* values for RPC_SECURITY_QOS*::ImpersonationType */
175 #define RPC_C_IMP_LEVEL_DEFAULT 0
176 #define RPC_C_IMP_LEVEL_ANONYMOUS 1
177 #define RPC_C_IMP_LEVEL_IDENTIFY 2
178 #define RPC_C_IMP_LEVEL_IMPERSONATE 3
179 #define RPC_C_IMP_LEVEL_DELEGATE 4
181 /* values for RPC_SECURITY_QOS*::IdentityTracking */
182 #define RPC_C_QOS_IDENTITY_STATIC 0
183 #define RPC_C_QOS_IDENTITY_DYNAMIC 1
185 /* flags for RPC_SECURITY_QOS*::Capabilities */
186 #define RPC_C_QOS_CAPABILITIES_DEFAULT 0x0
187 #define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH 0x1
188 #define RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC 0x2
189 #define RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY 0x4
191 /* values for RPC_SECURITY_QOS*::Version */
192 #define RPC_C_SECURITY_QOS_VERSION 1
193 #define RPC_C_SECURITY_QOS_VERSION_1 1
194 #define RPC_C_SECURITY_QOS_VERSION_2 2
196 /* flags for RPC_SECURITY_QOS_V2::AdditionalSecurityInfoType */
197 #define RPC_C_AUTHN_INFO_TYPE_HTTP 1
199 /* flags for RPC_HTTP_TRANSPORT_CREDENTIALS::Flags */
200 #define RPC_C_HTTP_FLAG_USE_SSL 0x1
201 #define RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME 0x2
203 /* values for RPC_HTTP_TRANSPORT_CREDENTIALS::AuthenticationTarget */
204 #define RPC_C_HTTP_AUTHN_TARGET_SERVER 1
205 #define RPC_C_HTTP_AUTHN_TARGET_PROXY 2
207 #define RPC_C_HTTP_AUTHN_SCHEME_BASIC 0x01
208 #define RPC_C_HTTP_AUTHN_SCHEME_NTLM 0x02
209 #define RPC_C_HTTP_AUTHN_SCHEME_PASSPORT 0x04
210 #define RPC_C_HTTP_AUTHN_SCHEME_DIGEST 0x08
211 #define RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE 0x10
213 typedef RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN( RPC_IF_HANDLE InterfaceUuid, void *Context );
214 typedef void (__RPC_USER *RPC_AUTH_KEY_RETRIEVAL_FN)(void *, RPC_WSTR, ULONG, void **, RPC_STATUS *);
216 typedef struct _RPC_POLICY
218 unsigned int Length;
219 ULONG EndpointFlags;
220 ULONG NICFlags;
221 } RPC_POLICY, *PRPC_POLICY;
223 typedef struct _SEC_WINNT_AUTH_IDENTITY_W
225 unsigned short* User;
226 ULONG UserLength;
227 unsigned short* Domain;
228 ULONG DomainLength;
229 unsigned short* Password;
230 ULONG PasswordLength;
231 ULONG Flags;
232 } SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W;
234 typedef struct _SEC_WINNT_AUTH_IDENTITY_A
236 unsigned char* User;
237 ULONG UserLength;
238 unsigned char* Domain;
239 ULONG DomainLength;
240 unsigned char* Password;
241 ULONG PasswordLength;
242 ULONG Flags;
243 } SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A;
245 typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W
247 SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
248 ULONG Flags;
249 ULONG AuthenticationTarget;
250 ULONG NumberOfAuthnSchemes;
251 ULONG *AuthnSchemes;
252 unsigned short *ServerCertificateSubject;
253 } RPC_HTTP_TRANSPORT_CREDENTIALS_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_W;
255 typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A
257 SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
258 ULONG Flags;
259 ULONG AuthenticationTarget;
260 ULONG NumberOfAuthnSchemes;
261 ULONG *AuthnSchemes;
262 unsigned char *ServerCertificateSubject;
263 } RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A;
265 typedef struct _RPC_SECURITY_QOS {
266 ULONG Version;
267 ULONG Capabilities;
268 ULONG IdentityTracking;
269 ULONG ImpersonationType;
270 } RPC_SECURITY_QOS, *PRPC_SECURITY_QOS;
272 typedef struct _RPC_SECURITY_QOS_V2_W
274 ULONG Version;
275 ULONG Capabilities;
276 ULONG IdentityTracking;
277 ULONG ImpersonationType;
278 ULONG AdditionalSecurityInfoType;
279 union
281 RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
282 } u;
283 } RPC_SECURITY_QOS_V2_W, *PRPC_SECURITY_QOS_V2_W;
285 typedef struct _RPC_SECURITY_QOS_V2_A
287 ULONG Version;
288 ULONG Capabilities;
289 ULONG IdentityTracking;
290 ULONG ImpersonationType;
291 ULONG AdditionalSecurityInfoType;
292 union
294 RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
295 } u;
296 } RPC_SECURITY_QOS_V2_A, *PRPC_SECURITY_QOS_V2_A;
298 #define _SEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(_SEC_WINNT_AUTH_IDENTITY_)
299 #define SEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(SEC_WINNT_AUTH_IDENTITY_)
300 #define PSEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(PSEC_WINNT_AUTH_IDENTITY_)
302 #define RPC_HTTP_TRANSPORT_CREDENTIALS_ WINELIB_NAME_AW(RPC_HTTP_TRANSPORT_CREDENTIALS_)
303 #define PRPC_HTTP_TRANSPORT_CREDENTIALS_ WINELIB_NAME_AW(PRPC_HTTP_TRANSPORT_CREDENTIALS_)
304 #define _RPC_HTTP_TRANSPORT_CREDENTIALS_ WINELIB_NAME_AW(_RPC_HTTP_TRANSPORT_CREDENTIALS_)
306 #define RPC_SECURITY_QOS_V2 WINELIB_NAME_AW(RPC_SECURITY_QOS_V2_)
307 #define PRPC_SECURITY_QOS_V2 WINELIB_NAME_AW(PRPC_SECURITY_QOS_V2_)
308 #define _RPC_SECURITY_QOS_V2 WINELIB_NAME_AW(_RPC_SECURITY_QOS_V2_)
310 /* SEC_WINNT_AUTH Flags */
311 #define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1
312 #define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2
314 /* RpcServerRegisterIfEx Flags */
315 #define RPC_IF_AUTOLISTEN 0x01
316 #define RPC_IF_OLE 0x02
317 #define RPC_IF_ALLOW_UNKNOWN_AUTHORITY 0x04
318 #define RPC_IF_ALLOW_SECURE_ONLY 0x08
319 #define RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH 0x10
320 #define RPC_IF_ALLOW_LOCAL_ONLY 0x20
321 #define RPC_IF_SEC_NO_CACHE 0x40
323 RPC_STATUS RPC_ENTRY DceErrorInqTextA(RPC_STATUS e, RPC_CSTR buffer);
324 RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS e, RPC_WSTR buffer);
325 #define DceErrorInqText WINELIB_NAME_AW(DceErrorInqText)
327 RPCRTAPI DECLSPEC_NORETURN void RPC_ENTRY
328 RpcRaiseException( RPC_STATUS exception );
330 RPCRTAPI int RPC_ENTRY RpcExceptionFilter(ULONG);
332 RPCRTAPI RPC_STATUS RPC_ENTRY
333 RpcBindingCopy( RPC_BINDING_HANDLE SourceBinding, RPC_BINDING_HANDLE* DestinationBinding );
335 RPCRTAPI RPC_STATUS RPC_ENTRY
336 RpcBindingFree( RPC_BINDING_HANDLE* Binding );
338 RPCRTAPI RPC_STATUS RPC_ENTRY
339 RpcBindingInqObject( RPC_BINDING_HANDLE Binding, UUID* ObjectUuid );
340 RPCRTAPI RPC_STATUS RPC_ENTRY
341 RpcBindingInqOption( RPC_BINDING_HANDLE Binding, ULONG Option, ULONG_PTR *OptionValue );
342 RPCRTAPI RPC_STATUS RPC_ENTRY
343 RpcBindingReset( RPC_BINDING_HANDLE Binding );
344 RPCRTAPI RPC_STATUS RPC_ENTRY
345 RpcBindingServerFromClient( RPC_BINDING_HANDLE ClientBinding, RPC_BINDING_HANDLE* ServerBinding );
346 RPCRTAPI RPC_STATUS RPC_ENTRY
347 RpcBindingSetObject( RPC_BINDING_HANDLE Binding, UUID* ObjectUuid );
348 RPCRTAPI RPC_STATUS RPC_ENTRY
349 RpcBindingSetOption( RPC_BINDING_HANDLE Binding, ULONG Option, ULONG_PTR OptionValue );
350 RPCRTAPI RPC_STATUS RPC_ENTRY
351 RpcObjectSetType( UUID* ObjUuid, UUID* TypeUuid );
353 RPCRTAPI RPC_STATUS RPC_ENTRY
354 RpcBindingFromStringBindingA( RPC_CSTR StringBinding, RPC_BINDING_HANDLE* Binding );
355 RPCRTAPI RPC_STATUS RPC_ENTRY
356 RpcBindingFromStringBindingW( RPC_WSTR StringBinding, RPC_BINDING_HANDLE* Binding );
357 #define RpcBindingFromStringBinding WINELIB_NAME_AW(RpcBindingFromStringBinding)
359 RPCRTAPI RPC_STATUS RPC_ENTRY
360 RpcBindingToStringBindingA( RPC_BINDING_HANDLE Binding, RPC_CSTR *StringBinding );
361 RPCRTAPI RPC_STATUS RPC_ENTRY
362 RpcBindingToStringBindingW( RPC_BINDING_HANDLE Binding, RPC_WSTR *StringBinding );
363 #define RpcBindingToStringBinding WINELIB_NAME_AW(RpcBindingToStringBinding)
365 RPCRTAPI RPC_STATUS RPC_ENTRY
366 RpcBindingVectorFree( RPC_BINDING_VECTOR** BindingVector );
368 RPCRTAPI RPC_STATUS RPC_ENTRY
369 RpcStringBindingComposeA( RPC_CSTR ObjUuid, RPC_CSTR Protseq, RPC_CSTR NetworkAddr,
370 RPC_CSTR Endpoint, RPC_CSTR Options, RPC_CSTR *StringBinding );
371 RPCRTAPI RPC_STATUS RPC_ENTRY
372 RpcStringBindingComposeW( RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr,
373 RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding );
374 #define RpcStringBindingCompose WINELIB_NAME_AW(RpcStringBindingCompose)
376 RPCRTAPI RPC_STATUS RPC_ENTRY
377 RpcStringBindingParseA( RPC_CSTR StringBinding, RPC_CSTR *ObjUuid, RPC_CSTR *Protseq,
378 RPC_CSTR *NetworkAddr, RPC_CSTR *Endpoint, RPC_CSTR *NetworkOptions );
379 RPCRTAPI RPC_STATUS RPC_ENTRY
380 RpcStringBindingParseW( RPC_WSTR StringBinding, RPC_WSTR *ObjUuid, RPC_WSTR *Protseq,
381 RPC_WSTR *NetworkAddr, RPC_WSTR *Endpoint, RPC_WSTR *NetworkOptions );
382 #define RpcStringBindingParse WINELIB_NAME_AW(RpcStringBindingParse)
384 RPCRTAPI RPC_STATUS RPC_ENTRY
385 RpcEpResolveBinding( RPC_BINDING_HANDLE Binding, RPC_IF_HANDLE IfSpec );
387 RPCRTAPI RPC_STATUS RPC_ENTRY
388 RpcEpRegisterA( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
389 UUID_VECTOR* UuidVector, RPC_CSTR Annotation );
390 RPCRTAPI RPC_STATUS RPC_ENTRY
391 RpcEpRegisterW( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
392 UUID_VECTOR* UuidVector, RPC_WSTR Annotation );
393 #define RpcEpRegister WINELIB_NAME_AW(RpcEpRegister)
395 RPCRTAPI RPC_STATUS RPC_ENTRY
396 RpcEpRegisterNoReplaceA( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
397 UUID_VECTOR* UuidVector, RPC_CSTR Annotation );
398 RPCRTAPI RPC_STATUS RPC_ENTRY
399 RpcEpRegisterNoReplaceW( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
400 UUID_VECTOR* UuidVector, RPC_WSTR Annotation );
401 #define RpcEpRegisterNoReplace WINELIB_NAME_AW(RpcEpRegisterNoReplace)
403 RPCRTAPI RPC_STATUS RPC_ENTRY
404 RpcEpUnregister( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
405 UUID_VECTOR* UuidVector );
407 RPCRTAPI RPC_STATUS RPC_ENTRY
408 RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector );
410 RPCRTAPI RPC_STATUS RPC_ENTRY
411 RpcServerListen( unsigned int MinimumCallThreads, unsigned int MaxCalls, unsigned int DontWait );
413 RPCRTAPI RPC_STATUS RPC_ENTRY
414 RpcMgmtEnableIdleCleanup( void );
416 typedef int (__RPC_API *RPC_MGMT_AUTHORIZATION_FN)( RPC_BINDING_HANDLE, ULONG, RPC_STATUS * );
418 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetAuthorizationFn( RPC_MGMT_AUTHORIZATION_FN );
420 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetCancelTimeout(LONG);
422 RPCRTAPI RPC_STATUS RPC_ENTRY
423 RpcMgmtWaitServerListen( void );
425 RPCRTAPI RPC_STATUS RPC_ENTRY
426 RpcMgmtInqStats( RPC_BINDING_HANDLE Binding, RPC_STATS_VECTOR **Statistics );
428 RPCRTAPI RPC_STATUS RPC_ENTRY
429 RpcMgmtStopServerListening( RPC_BINDING_HANDLE Binding );
431 RPCRTAPI RPC_STATUS RPC_ENTRY
432 RpcMgmtIsServerListening(RPC_BINDING_HANDLE Binding);
434 RPCRTAPI RPC_STATUS RPC_ENTRY
435 RpcMgmtInqIfIds( RPC_BINDING_HANDLE Binding, RPC_IF_ID_VECTOR** IfIdVector );
437 RPCRTAPI RPC_STATUS RPC_ENTRY
438 RpcMgmtEpEltInqBegin( RPC_BINDING_HANDLE EpBinding, ULONG InquiryType, RPC_IF_ID *IfId,
439 ULONG VersOption, UUID *ObjectUuid, RPC_EP_INQ_HANDLE *InquiryContext);
441 RPCRTAPI RPC_STATUS RPC_ENTRY
442 RpcMgmtSetComTimeout( RPC_BINDING_HANDLE Binding, unsigned int Timeout );
444 RPCRTAPI RPC_STATUS RPC_ENTRY
445 RpcMgmtSetServerStackSize( ULONG ThreadStackSize );
447 RPCRTAPI RPC_STATUS RPC_ENTRY
448 RpcMgmtStatsVectorFree( RPC_STATS_VECTOR **StatsVector );
450 RPCRTAPI RPC_STATUS RPC_ENTRY
451 RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv );
453 RPCRTAPI RPC_STATUS RPC_ENTRY
454 RpcServerRegisterIfEx( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
455 unsigned int Flags, unsigned int MaxCalls, RPC_IF_CALLBACK_FN* IfCallbackFn );
457 RPCRTAPI RPC_STATUS RPC_ENTRY
458 RpcServerRegisterIf2( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
459 unsigned int Flags, unsigned int MaxCalls, unsigned int MaxRpcSize, RPC_IF_CALLBACK_FN* IfCallbackFn );
461 RPCRTAPI RPC_STATUS RPC_ENTRY
462 RpcServerRegisterIf3( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
463 unsigned int Flags, unsigned int MaxCalls, unsigned int MaxRpcSize,
464 RPC_IF_CALLBACK_FN* IfCallbackFn, void* SecurityDescriptor );
466 RPCRTAPI RPC_STATUS RPC_ENTRY
467 RpcServerUnregisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, unsigned int WaitForCallsToComplete );
469 RPCRTAPI RPC_STATUS RPC_ENTRY
470 RpcServerUnregisterIfEx( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, int RundownContextHandles );
473 RPCRTAPI RPC_STATUS RPC_ENTRY
474 RpcServerUseProtseqA(RPC_CSTR Protseq, unsigned int MaxCalls, void *SecurityDescriptor);
475 RPCRTAPI RPC_STATUS RPC_ENTRY
476 RpcServerUseProtseqW(RPC_WSTR Protseq, unsigned int MaxCalls, void *SecurityDescriptor);
477 #define RpcServerUseProtseq WINELIB_NAME_AW(RpcServerUseProtseq)
479 RPCRTAPI RPC_STATUS RPC_ENTRY
480 RpcServerUseProtseqEpA( RPC_CSTR Protseq, unsigned int MaxCalls, RPC_CSTR Endpoint, void *SecurityDescriptor );
481 RPCRTAPI RPC_STATUS RPC_ENTRY
482 RpcServerUseProtseqEpW( RPC_WSTR Protseq, unsigned int MaxCalls, RPC_WSTR Endpoint, void *SecurityDescriptor );
483 #define RpcServerUseProtseqEp WINELIB_NAME_AW(RpcServerUseProtseqEp)
485 RPCRTAPI RPC_STATUS RPC_ENTRY
486 RpcServerUseProtseqEpExA( RPC_CSTR Protseq, unsigned int MaxCalls, RPC_CSTR Endpoint, void *SecurityDescriptor,
487 PRPC_POLICY Policy );
488 RPCRTAPI RPC_STATUS RPC_ENTRY
489 RpcServerUseProtseqEpExW( RPC_WSTR Protseq, unsigned int MaxCalls, RPC_WSTR Endpoint, void *SecurityDescriptor,
490 PRPC_POLICY Policy );
491 #define RpcServerUseProtseqEpEx WINELIB_NAME_AW(RpcServerUseProtseqEpEx)
493 RPCRTAPI RPC_STATUS RPC_ENTRY
494 RpcServerRegisterAuthInfoA( RPC_CSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
495 void *Arg );
496 RPCRTAPI RPC_STATUS RPC_ENTRY
497 RpcServerRegisterAuthInfoW( RPC_WSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
498 void *Arg );
499 #define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
501 RPCRTAPI RPC_STATUS RPC_ENTRY
502 RpcBindingSetAuthInfoExA( RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, ULONG AuthnLevel,
503 ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr,
504 RPC_SECURITY_QOS *SecurityQos );
506 RPCRTAPI RPC_STATUS RPC_ENTRY
507 RpcBindingSetAuthInfoExW( RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName, ULONG AuthnLevel,
508 ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr,
509 RPC_SECURITY_QOS *SecurityQos );
510 #define RpcBindingSetAuthInfoEx WINELIB_NAME_AW(RpcBindingSetAuthInfoEx)
512 RPCRTAPI RPC_STATUS RPC_ENTRY
513 RpcBindingSetAuthInfoA( RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, ULONG AuthnLevel,
514 ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr );
516 RPCRTAPI RPC_STATUS RPC_ENTRY
517 RpcBindingSetAuthInfoW( RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName, ULONG AuthnLevel,
518 ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr );
519 #define RpcBindingSetAuthInfo WINELIB_NAME_AW(RpcBindingSetAuthInfo)
521 RPCRTAPI RPC_STATUS RPC_ENTRY
522 RpcBindingInqAuthInfoExA( RPC_BINDING_HANDLE Binding, RPC_CSTR * ServerPrincName, ULONG *AuthnLevel,
523 ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc,
524 ULONG RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS );
526 RPCRTAPI RPC_STATUS RPC_ENTRY
527 RpcBindingInqAuthInfoExW( RPC_BINDING_HANDLE Binding, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel,
528 ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc,
529 ULONG RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS );
530 #define RpcBindingInqAuthInfoEx WINELIB_NAME_AW(RpcBindingInqAuthInfoEx)
532 RPCRTAPI RPC_STATUS RPC_ENTRY
533 RpcBindingInqAuthInfoA( RPC_BINDING_HANDLE Binding, RPC_CSTR * ServerPrincName, ULONG *AuthnLevel,
534 ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc );
536 RPCRTAPI RPC_STATUS RPC_ENTRY
537 RpcBindingInqAuthInfoW( RPC_BINDING_HANDLE Binding, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel,
538 ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc );
539 #define RpcBindingInqAuthInfo WINELIB_NAME_AW(RpcBindingInqAuthInfo)
541 RPCRTAPI RPC_STATUS RPC_ENTRY
542 RpcBindingInqAuthClientA( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
543 RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
544 ULONG *AuthzSvc );
546 RPCRTAPI RPC_STATUS RPC_ENTRY
547 RpcBindingInqAuthClientW( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
548 RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
549 ULONG *AuthzSvc );
550 #define RpcBindingInqAuthClient WINELIB_NAME_AW(RpcBindingInqAuthClient)
552 RPCRTAPI RPC_STATUS RPC_ENTRY
553 RpcBindingInqAuthClientExA( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
554 RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
555 ULONG *AuthzSvc, ULONG Flags );
557 RPCRTAPI RPC_STATUS RPC_ENTRY
558 RpcBindingInqAuthClientExW( RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs,
559 RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc,
560 ULONG *AuthzSvc, ULONG Flags );
561 #define RpcBindingInqAuthClientEx WINELIB_NAME_AW(RpcBindingInqAuthClientEx)
563 RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThread(void*);
564 RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThreadEx(void*,LONG);
566 RPCRTAPI RPC_STATUS RPC_ENTRY
567 RpcImpersonateClient( RPC_BINDING_HANDLE Binding );
569 RPCRTAPI RPC_STATUS RPC_ENTRY
570 RpcNetworkIsProtseqValidA( RPC_CSTR protseq );
571 RPCRTAPI RPC_STATUS RPC_ENTRY
572 RpcNetworkIsProtseqValidW( RPC_WSTR protseq );
573 #define RpcNetworkIsProtseqValid WINELIB_NAME_AW(RpcNetworkIsProtseqValid)
575 RPCRTAPI RPC_STATUS RPC_ENTRY
576 RpcNetworkInqProtseqsA( RPC_PROTSEQ_VECTORA** protseqs );
577 RPCRTAPI RPC_STATUS RPC_ENTRY
578 RpcNetworkInqProtseqsW( RPC_PROTSEQ_VECTORW** protseqs );
579 #define RpcNetworkInqProtseqs WINELIB_NAME_AW(RpcNetworkInqProtseqs)
581 RPCRTAPI RPC_STATUS RPC_ENTRY
582 RpcProtseqVectorFreeA( RPC_PROTSEQ_VECTORA** protseqs );
583 RPCRTAPI RPC_STATUS RPC_ENTRY
584 RpcProtseqVectorFreeW( RPC_PROTSEQ_VECTORW** protseqs );
585 #define RpcProtseqVectorFree WINELIB_NAME_AW(RpcProtseqVectorFree)
587 RPCRTAPI RPC_STATUS RPC_ENTRY
588 RpcRevertToSelf( void );
589 RPCRTAPI RPC_STATUS RPC_ENTRY
590 RpcRevertToSelfEx( RPC_BINDING_HANDLE Binding );
592 RPCRTAPI RPC_STATUS RPC_ENTRY
593 RpcStringFreeA(RPC_CSTR* String);
594 RPCRTAPI RPC_STATUS RPC_ENTRY
595 RpcStringFreeW(RPC_WSTR* String);
596 #define RpcStringFree WINELIB_NAME_AW(RpcStringFree)
598 RPCRTAPI RPC_STATUS RPC_ENTRY
599 RpcIfInqId( RPC_IF_HANDLE RpcIfHandle, RPC_IF_ID *RpcIfId );
601 RPCRTAPI RPC_STATUS RPC_ENTRY
602 UuidToStringA( UUID* Uuid, RPC_CSTR* StringUuid );
603 RPCRTAPI RPC_STATUS RPC_ENTRY
604 UuidToStringW( UUID* Uuid, RPC_WSTR* StringUuid );
605 #define UuidToString WINELIB_NAME_AW(UuidToString)
607 RPCRTAPI RPC_STATUS RPC_ENTRY
608 UuidFromStringA( RPC_CSTR StringUuid, UUID* Uuid );
609 RPCRTAPI RPC_STATUS RPC_ENTRY
610 UuidFromStringW( RPC_WSTR StringUuid, UUID* Uuid );
611 #define UuidFromString WINELIB_NAME_AW(UuidFromString)
613 RPCRTAPI RPC_STATUS RPC_ENTRY
614 UuidCreate( UUID* Uuid );
615 RPCRTAPI RPC_STATUS RPC_ENTRY
616 UuidCreateSequential( UUID* Uuid );
617 RPCRTAPI RPC_STATUS RPC_ENTRY
618 UuidCreateNil( UUID* Uuid );
619 RPCRTAPI signed int RPC_ENTRY
620 UuidCompare( UUID* Uuid1, UUID* Uuid2, RPC_STATUS* Status_ );
621 RPCRTAPI int RPC_ENTRY
622 UuidEqual( UUID* Uuid1, UUID* Uuid2, RPC_STATUS* Status_ );
623 RPCRTAPI unsigned short RPC_ENTRY
624 UuidHash(UUID* Uuid, RPC_STATUS* Status_ );
625 RPCRTAPI int RPC_ENTRY
626 UuidIsNil( UUID* Uuid, RPC_STATUS* Status_ );
628 RPCRTAPI RPC_STATUS RPC_ENTRY
629 RpcServerInqDefaultPrincNameA( ULONG AuthnSvc, RPC_CSTR *PrincName );
630 RPCRTAPI RPC_STATUS RPC_ENTRY
631 RpcServerInqDefaultPrincNameW( ULONG AuthnSvc, RPC_WSTR *PrincName );
632 #define RpcServerInqDefaultPrincName WINELIB_NAME_AW(RpcServerInqDefaultPrincName)
634 #ifdef __cplusplus
636 #endif
638 #include <rpcdcep.h>
640 #endif /*__WINE_RPCDCE_H */