blob: 2510a18a5c4d1249706aad591d113474745d1dde [file] [log] [blame]
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00001/*
2 * Copyright (C) 2000 Francois Gouget
3 *
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.
8 *
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.
13 *
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18
Francois Gouget552fddc2000-11-08 05:06:10 +000019#ifndef __WINE_RPCDCE_H
20#define __WINE_RPCDCE_H
21
Peter Lemenkov66f839d2005-11-14 11:20:30 +000022#ifdef __cplusplus
23extern "C" {
24#endif
25
Mike McCormackcdf631f2004-09-02 20:09:10 +000026#ifndef IN
27#define IN
28#endif
29#ifndef OUT
30#define OUT
31#endif
32#ifndef OPTIONAL
33#define OPTIONAL
34#endif
35
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +000036#ifndef GUID_DEFINED
Dimitrie O. Paun53f9c212003-08-28 21:43:34 +000037#include <guiddef.h>
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +000038#endif
39
Ove Kaaven01bdccb2002-12-18 02:21:38 +000040#ifndef UUID_DEFINED
41#define UUID_DEFINED
42typedef GUID UUID;
43#endif
44
Francois Gouget552fddc2000-11-08 05:06:10 +000045typedef void* RPC_AUTH_IDENTITY_HANDLE;
46typedef void* RPC_AUTHZ_HANDLE;
47typedef void* RPC_IF_HANDLE;
48typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
49typedef RPC_BINDING_HANDLE handle_t;
50#define rpc_binding_handle_t RPC_BINDING_HANDLE
51#define RPC_MGR_EPV void
52
Ove Kaaven0dac9722001-10-14 16:15:37 +000053typedef struct _RPC_BINDING_VECTOR
54{
55 unsigned long Count;
56 RPC_BINDING_HANDLE BindingH[1];
Francois Gouget02236f02004-09-08 01:27:24 +000057} RPC_BINDING_VECTOR;
Ove Kaaven0dac9722001-10-14 16:15:37 +000058#define rpc_binding_vector_t RPC_BINDING_VECTOR
59
60typedef struct _UUID_VECTOR
61{
62 unsigned long Count;
63 UUID *Uuid[1];
Francois Gouget02236f02004-09-08 01:27:24 +000064} UUID_VECTOR;
Ove Kaaven0dac9722001-10-14 16:15:37 +000065#define uuid_vector_t UUID_VECTOR
66
67typedef struct _RPC_IF_ID
68{
69 UUID Uuid;
70 unsigned short VersMajor;
71 unsigned short VersMinor;
72} RPC_IF_ID;
73
Mike McCormackf0c49da2006-04-19 17:25:02 +090074typedef struct
75{
76 unsigned long Count;
77 RPC_IF_ID *IfId[1];
78} RPC_IF_ID_VECTOR;
79
Mike McCormacka0f86232006-04-19 17:25:21 +090080typedef I_RPC_HANDLE *RPC_EP_INQ_HANDLE;
81
82#define RPC_C_EP_ALL_ELTS 0
83#define RPC_C_EP_MATCH_BY_IF 1
84#define RPC_C_EP_MATCH_BY_OBJ 2
85#define RPC_C_EP_MATCH_BY_BOTH 3
86
87#define RPC_C_VERS_ALL 1
88#define RPC_C_VERS_COMPATIBLE 2
89#define RPC_C_VERS_EXACT 3
90#define RPC_C_VERS_MAJOR_ONLY 4
91#define RPC_C_VERS_UPTO 5
92
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +000093#define RPC_C_BINDING_INFINITE_TIMEOUT 10
94#define RPC_C_BINDING_MIN_TIMEOUT 0
95#define RPC_C_BINDING_DEFAULT_TIMEOUT 5
96#define RPC_C_BINDING_MAX_TIMEOUT 9
97
98#define RPC_C_CANCEL_INFINITE_TIMEOUT -1
99
100#define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
101#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
102
103/* RPC_POLICY EndpointFlags */
104#define RPC_C_BIND_TO_ALL_NICS 0x1
105#define RPC_C_USE_INTERNET_PORT 0x1
106#define RPC_C_USE_INTRANET_PORT 0x2
107#define RPC_C_DONT_FAIL 0x4
108
109/* RPC_POLICY EndpointFlags specific to the Falcon/RPC transport */
110#define RPC_C_MQ_TEMPORARY 0x0000
111#define RPC_C_MQ_PERMANENT 0x0001
112#define RPC_C_MQ_CLEAR_ON_OPEN 0x0002
113#define RPC_C_MQ_USE_EXISTING_SECURITY 0x0004
114#define RPC_C_MQ_AUTHN_LEVEL_NONE 0x0000
115#define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY 0x0008
116#define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY 0x0010
117
Mike McCormack9b98cb52006-04-28 13:42:23 +0900118#define RPC_C_AUTHN_LEVEL_DEFAULT 0
119#define RPC_C_AUTHN_LEVEL_NONE 1
120#define RPC_C_AUTHN_LEVEL_CONNECT 2
121#define RPC_C_AUTHN_LEVEL_CALL 3
122#define RPC_C_AUTHN_LEVEL_PKT 4
123#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
124#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6
125
126#define RPC_C_AUTHN_NONE 0
127#define RPC_C_AUTHN_DCE_PRIVATE 1
128#define RPC_C_AUTHN_DCE_PUBLIC 2
129#define RPC_C_AUTHN_DEC_PUBLIC 4
130#define RPC_C_AUTHN_GSS_NEGOTIATE 9
131#define RPC_C_AUTHN_WINNT 10
132#define RPC_C_AUTHN_GSS_SCHANNEL 14
133#define RPC_C_AUTHN_GSS_KERBEROS 16
134#define RPC_C_AUTHN_DPA 17
135#define RPC_C_AUTHN_MSN 18
136#define RPC_C_AUTHN_DIGEST 21
137#define RPC_C_AUTHN_MQ 100
138#define RPC_C_AUTHN_DEFAULT 0xffffffff
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000139
Mike McCormackcdf631f2004-09-02 20:09:10 +0000140typedef RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN( RPC_IF_HANDLE InterfaceUuid, void *Context );
Patrik Stridvall395e8ba2002-02-05 18:09:29 +0000141typedef void (__RPC_USER *RPC_AUTH_KEY_RETRIEVAL_FN)();
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000142
Vincent BĂ©ron9a624912002-05-31 23:06:46 +0000143typedef struct _RPC_POLICY
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000144{
Mike McCormackcdf631f2004-09-02 20:09:10 +0000145 unsigned int Length;
146 unsigned long EndpointFlags;
147 unsigned long NICFlags;
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000148} RPC_POLICY, *PRPC_POLICY;
149
Kai Blin17fa0ff2005-08-22 09:16:50 +0000150typedef struct _SEC_WINNT_AUTH_IDENTITY_W
151{
152 unsigned short __RPC_FAR* User;
153 unsigned long UserLength;
154 unsigned short __RPC_FAR* Domain;
155 unsigned long DomainLength;
156 unsigned short __RPC_FAR* Password;
157 unsigned long PasswordLength;
158 unsigned long Flags;
159} SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W;
160
161typedef struct _SEC_WINNT_AUTH_IDENTITY_A
162{
163 unsigned char __RPC_FAR* User;
164 unsigned long UserLength;
165 unsigned char __RPC_FAR* Domain;
166 unsigned long DomainLength;
167 unsigned char __RPC_FAR* Password;
168 unsigned long PasswordLength;
169 unsigned long Flags;
170} SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A;
171
Mike McCormack4e49c382006-04-26 22:44:07 +0900172typedef struct _RPC_SECURITY_QOS {
173 unsigned long Version;
174 unsigned long Capabilities;
175 unsigned long IdentityTracking;
176 unsigned long ImpersonationType;
177} RPC_SECURITY_QOS, *PRPC_SECURITY_QOS;
178
Kai Blin17fa0ff2005-08-22 09:16:50 +0000179#define _SEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(_SEC_WINNT_AUTH_IDENTITY_)
180#define SEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(SEC_WINNT_AUTH_IDENTITY_)
181#define PSEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(PSEC_WINNT_AUTH_IDENTITY_)
182
183/* SEC_WINNT_AUTH Flags */
184#define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1
185#define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2
186
Ove Kaaven29b30612002-08-09 01:11:39 +0000187/* RpcServerRegisterIfEx Flags */
188#define RPC_IF_AUTOLISTEN 0x1
189#define RPC_IF_OLE 0x2
190#define RPC_IF_ALLOW_UNKNOWN_AUTHORITY 0x4
191#define RPC_IF_ALLOW_SECURE_ONLY 0x8
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000192
Ge van Geldorp7cf104a2005-01-14 15:11:40 +0000193RPC_STATUS RPC_ENTRY DceErrorInqTextA(RPC_STATUS e, unsigned char *buffer);
194RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS e, unsigned short *buffer);
Bill Medlandbf420212004-12-23 11:29:54 +0000195#define DceErrorInqText WINELIB_NAME_AW(DceErrorInqText)
196
Ove Kaaven882fc032003-01-31 03:21:11 +0000197RPCRTAPI void RPC_ENTRY
198 RpcRaiseException( RPC_STATUS exception );
199
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000200RPCRTAPI RPC_STATUS RPC_ENTRY
Ove Kaaven0dac9722001-10-14 16:15:37 +0000201 RpcBindingCopy( RPC_BINDING_HANDLE SourceBinding, RPC_BINDING_HANDLE* DestinationBinding );
202
203RPCRTAPI RPC_STATUS RPC_ENTRY
Patrik Stridvall5038c042002-01-31 21:47:34 +0000204 RpcBindingFree( RPC_BINDING_HANDLE* Binding );
Ove Kaaven0dac9722001-10-14 16:15:37 +0000205
206RPCRTAPI RPC_STATUS RPC_ENTRY
Ove Kaaven29b30612002-08-09 01:11:39 +0000207 RpcBindingInqObject( RPC_BINDING_HANDLE Binding, UUID* ObjectUuid );
208RPCRTAPI RPC_STATUS RPC_ENTRY
209 RpcBindingReset( RPC_BINDING_HANDLE Binding );
210RPCRTAPI RPC_STATUS RPC_ENTRY
211 RpcBindingSetObject( RPC_BINDING_HANDLE Binding, UUID* ObjectUuid );
Gregory M. Turneradd18f72003-11-21 22:14:42 +0000212RPCRTAPI RPC_STATUS RPC_ENTRY
213 RpcObjectSetType( UUID* ObjUuid, UUID* TypeUuid );
Ove Kaaven29b30612002-08-09 01:11:39 +0000214
215RPCRTAPI RPC_STATUS RPC_ENTRY
Filip Navara7930ada2004-04-19 23:03:58 +0000216 RpcBindingFromStringBindingA( unsigned char *StringBinding, RPC_BINDING_HANDLE* Binding );
Ove Kaaven0dac9722001-10-14 16:15:37 +0000217RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000218 RpcBindingFromStringBindingW( unsigned short *StringBinding, RPC_BINDING_HANDLE* Binding );
Ove Kaaven0dac9722001-10-14 16:15:37 +0000219#define RpcBindingFromStringBinding WINELIB_NAME_AW(RpcBindingFromStringBinding)
220
221RPCRTAPI RPC_STATUS RPC_ENTRY
Filip Navara7930ada2004-04-19 23:03:58 +0000222 RpcBindingToStringBindingA( RPC_BINDING_HANDLE Binding, unsigned char **StringBinding );
Ove Kaaven0dac9722001-10-14 16:15:37 +0000223RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000224 RpcBindingToStringBindingW( RPC_BINDING_HANDLE Binding, unsigned short **StringBinding );
Ove Kaaven0dac9722001-10-14 16:15:37 +0000225#define RpcBindingFromStringBinding WINELIB_NAME_AW(RpcBindingFromStringBinding)
226
227RPCRTAPI RPC_STATUS RPC_ENTRY
228 RpcBindingVectorFree( RPC_BINDING_VECTOR** BindingVector );
229
230RPCRTAPI RPC_STATUS RPC_ENTRY
Filip Navara7930ada2004-04-19 23:03:58 +0000231 RpcStringBindingComposeA( unsigned char *ObjUuid, unsigned char *Protseq, unsigned char *NetworkAddr,
232 unsigned char *Endpoint, unsigned char *Options, unsigned char **StringBinding );
Ove Kaaven29b30612002-08-09 01:11:39 +0000233RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000234 RpcStringBindingComposeW( unsigned short *ObjUuid, unsigned short *Protseq, unsigned short *NetworkAddr,
235 unsigned short *Endpoint, unsigned short *Options, unsigned short **StringBinding );
Ove Kaaven29b30612002-08-09 01:11:39 +0000236#define RpcStringBindingCompose WINELIB_NAME_AW(RpcStringBindingCompose)
237
238RPCRTAPI RPC_STATUS RPC_ENTRY
Filip Navara7930ada2004-04-19 23:03:58 +0000239 RpcStringBindingParseA( unsigned char *StringBinding, unsigned char **ObjUuid, unsigned char **Protseq,
240 unsigned char **NetworkAddr, unsigned char **Endpoint, unsigned char **NetworkOptions );
Ove Kaaven29b30612002-08-09 01:11:39 +0000241RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000242 RpcStringBindingParseW( unsigned short *StringBinding, unsigned short **ObjUuid, unsigned short **Protseq,
243 unsigned short **NetworkAddr, unsigned short **Endpoint, unsigned short **NetworkOptions );
Ove Kaaven29b30612002-08-09 01:11:39 +0000244#define RpcStringBindingParse WINELIB_NAME_AW(RpcStringBindingParse)
245
246RPCRTAPI RPC_STATUS RPC_ENTRY
247 RpcEpResolveBinding( RPC_BINDING_HANDLE Binding, RPC_IF_HANDLE IfSpec );
248
249RPCRTAPI RPC_STATUS RPC_ENTRY
Francois Gouget02236f02004-09-08 01:27:24 +0000250 RpcEpRegisterA( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
251 UUID_VECTOR* UuidVector, unsigned char *Annotation );
Ove Kaaven29b30612002-08-09 01:11:39 +0000252RPCRTAPI RPC_STATUS RPC_ENTRY
Francois Gouget02236f02004-09-08 01:27:24 +0000253 RpcEpRegisterW( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
254 UUID_VECTOR* UuidVector, unsigned short *Annotation );
Ove Kaaven29b30612002-08-09 01:11:39 +0000255#define RpcEpRegister WINELIB_NAME_AW(RpcEpRegister)
256
257RPCRTAPI RPC_STATUS RPC_ENTRY
258 RpcEpRegisterNoReplaceA( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
Filip Navara7930ada2004-04-19 23:03:58 +0000259 UUID_VECTOR* UuidVector, unsigned char *Annotation );
Ove Kaaven29b30612002-08-09 01:11:39 +0000260RPCRTAPI RPC_STATUS RPC_ENTRY
261 RpcEpRegisterNoReplaceW( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
Mike McCormackcdf631f2004-09-02 20:09:10 +0000262 UUID_VECTOR* UuidVector, unsigned short *Annotation );
Ove Kaaven29b30612002-08-09 01:11:39 +0000263#define RpcEpRegisterNoReplace WINELIB_NAME_AW(RpcEpRegisterNoReplace)
264
265RPCRTAPI RPC_STATUS RPC_ENTRY
266 RpcEpUnregister( RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR* BindingVector,
267 UUID_VECTOR* UuidVector );
268
269RPCRTAPI RPC_STATUS RPC_ENTRY
Ove Kaaven0dac9722001-10-14 16:15:37 +0000270 RpcServerInqBindings( RPC_BINDING_VECTOR** BindingVector );
271
272RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000273 RpcServerListen( unsigned int MinimumCallThreads, unsigned int MaxCalls, unsigned int DontWait );
Ove Kaaven0dac9722001-10-14 16:15:37 +0000274
275RPCRTAPI RPC_STATUS RPC_ENTRY
Greg Turner034e4df2002-10-18 03:56:56 +0000276 RpcMgmtWaitServerListen( void );
277
278RPCRTAPI RPC_STATUS RPC_ENTRY
Greg Turner3eafbfc2002-10-31 22:45:12 +0000279 RpcMgmtStopServerListening( RPC_BINDING_HANDLE Binding );
280
281RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackf0c49da2006-04-19 17:25:02 +0900282 RpcMgmtInqIfIds( RPC_BINDING_HANDLE Binding, RPC_IF_ID_VECTOR** IfIdVector );
283
284RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormacka0f86232006-04-19 17:25:21 +0900285 RpcMgmtEpEltInqBegin( RPC_BINDING_HANDLE EpBinding, unsigned long InquiryType, RPC_IF_ID *IfId,
286 unsigned long VersOption, UUID *ObjectUuid, RPC_EP_INQ_HANDLE *InquiryContext);
287
288RPCRTAPI RPC_STATUS RPC_ENTRY
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000289 RpcServerRegisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv );
Vincent BĂ©ron9a624912002-05-31 23:06:46 +0000290
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000291RPCRTAPI RPC_STATUS RPC_ENTRY
292 RpcServerRegisterIfEx( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
Mike McCormackcdf631f2004-09-02 20:09:10 +0000293 unsigned int Flags, unsigned int MaxCalls, RPC_IF_CALLBACK_FN* IfCallbackFn );
Vincent BĂ©ron9a624912002-05-31 23:06:46 +0000294
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000295RPCRTAPI RPC_STATUS RPC_ENTRY
296 RpcServerRegisterIf2( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
Mike McCormackcdf631f2004-09-02 20:09:10 +0000297 unsigned int Flags, unsigned int MaxCalls, unsigned int MaxRpcSize, RPC_IF_CALLBACK_FN* IfCallbackFn );
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000298
Greg Turner3eafbfc2002-10-31 22:45:12 +0000299RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000300 RpcServerUnregisterIf( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, unsigned int WaitForCallsToComplete );
Greg Turner3eafbfc2002-10-31 22:45:12 +0000301
302RPCRTAPI RPC_STATUS RPC_ENTRY
303 RpcServerUnregisterIfEx( RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, int RundownContextHandles );
304
Greg Turnerb71535e2002-10-21 23:41:35 +0000305
306RPCRTAPI RPC_STATUS RPC_ENTRY
Filip Navara7930ada2004-04-19 23:03:58 +0000307 RpcServerUseProtseqA(unsigned char *Protseq, unsigned int MaxCalls, void *SecurityDescriptor);
Greg Turnerb71535e2002-10-21 23:41:35 +0000308RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000309 RpcServerUseProtseqW(unsigned short *Protseq, unsigned int MaxCalls, void *SecurityDescriptor);
Greg Turnerb71535e2002-10-21 23:41:35 +0000310#define RpcServerUseProtseq WINELIB_NAME_AW(RpcServerUseProtseq)
311
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000312RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000313 RpcServerUseProtseqEpA( unsigned char *Protseq, unsigned int MaxCalls, unsigned char *Endpoint, void *SecurityDescriptor );
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000314RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000315 RpcServerUseProtseqEpW( unsigned short *Protseq, unsigned int MaxCalls, unsigned short *Endpoint, void *SecurityDescriptor );
Ove Kaaven0dac9722001-10-14 16:15:37 +0000316#define RpcServerUseProtseqEp WINELIB_NAME_AW(RpcServerUseProtseqEp)
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000317
318RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000319 RpcServerUseProtseqEpExA( unsigned char *Protseq, unsigned int MaxCalls, unsigned char *Endpoint, void *SecurityDescriptor,
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000320 PRPC_POLICY Policy );
321RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000322 RpcServerUseProtseqEpExW( unsigned short *Protseq, unsigned int MaxCalls, unsigned short *Endpoint, void *SecurityDescriptor,
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000323 PRPC_POLICY Policy );
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000324#define RpcServerUseProtseqEpEx WINELIB_NAME_AW(RpcServerUseProtseqEpEx)
325
326RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000327 RpcServerRegisterAuthInfoA( unsigned char *ServerPrincName, unsigned long AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
328 void *Arg );
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000329RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000330 RpcServerRegisterAuthInfoW( unsigned short *ServerPrincName, unsigned long AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
331 void *Arg );
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000332#define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
333
334RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormack4e49c382006-04-26 22:44:07 +0900335 RpcBindingSetAuthInfoExA( RPC_BINDING_HANDLE Binding, unsigned char *ServerPrincName, unsigned long AuthnLevel,
336 unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr,
337 RPC_SECURITY_QOS *SecurityQos );
338
339RPCRTAPI RPC_STATUS RPC_ENTRY
340 RpcBindingSetAuthInfoExW( RPC_BINDING_HANDLE Binding, unsigned short *ServerPrincName, unsigned long AuthnLevel,
341 unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr,
342 RPC_SECURITY_QOS *SecurityQos );
343#define RpcBindingSetAuthInfoEx WINELIB_NAME_AW(RpcBindingSetAuthInfoEx)
344
345RPCRTAPI RPC_STATUS RPC_ENTRY
346 RpcBindingSetAuthInfoA( RPC_BINDING_HANDLE Binding, unsigned char *ServerPrincName, unsigned long AuthnLevel,
347 unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr );
348
349RPCRTAPI RPC_STATUS RPC_ENTRY
350 RpcBindingSetAuthInfoW( RPC_BINDING_HANDLE Binding, unsigned short *ServerPrincName, unsigned long AuthnLevel,
351 unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr );
352#define RpcBindingSetAuthInfo WINELIB_NAME_AW(RpcBindingSetAuthInfo)
353
354RPCRTAPI RPC_STATUS RPC_ENTRY
355 RpcBindingInqAuthInfoExA( RPC_BINDING_HANDLE Binding, unsigned char ** ServerPrincName, unsigned long *AuthnLevel,
356 unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc,
357 unsigned long RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS );
358
359RPCRTAPI RPC_STATUS RPC_ENTRY
360 RpcBindingInqAuthInfoExW( RPC_BINDING_HANDLE Binding, unsigned short ** ServerPrincName, unsigned long *AuthnLevel,
361 unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc,
362 unsigned long RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS );
363#define RpcBindingInqAuthInfoEx WINELIB_NAME_AW(RpcBindingInqAuthInfoEx)
364
365RPCRTAPI RPC_STATUS RPC_ENTRY
366 RpcBindingInqAuthInfoA( RPC_BINDING_HANDLE Binding, unsigned char ** ServerPrincName, unsigned long *AuthnLevel,
367 unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc );
368
369RPCRTAPI RPC_STATUS RPC_ENTRY
370 RpcBindingInqAuthInfoW( RPC_BINDING_HANDLE Binding, unsigned short ** ServerPrincName, unsigned long *AuthnLevel,
371 unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc );
372#define RpcBindingInqAuthInfo WINELIB_NAME_AW(RpcBindingInqAuthInfo)
373
374RPCRTAPI RPC_STATUS RPC_ENTRY
Filip Navara24935292004-04-14 04:28:27 +0000375 RpcNetworkIsProtseqValidA( unsigned char *protseq );
Mike Hearneca464b2004-01-20 23:36:50 +0000376RPCRTAPI RPC_STATUS RPC_ENTRY
Mike McCormackcdf631f2004-09-02 20:09:10 +0000377 RpcNetworkIsProtseqValidW( unsigned short *protseq );
Filip Navara24935292004-04-14 04:28:27 +0000378#define RpcNetworkIsProtseqValid WINELIB_NAME_AW(RpcNetworkIsProtseqValid)
Mike Hearneca464b2004-01-20 23:36:50 +0000379
380RPCRTAPI RPC_STATUS RPC_ENTRY
Dimitrie O. Paun48be9c62002-12-24 00:26:55 +0000381 RpcStringFreeA(unsigned char** String);
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000382RPCRTAPI RPC_STATUS RPC_ENTRY
Dimitrie O. Paun48be9c62002-12-24 00:26:55 +0000383 RpcStringFreeW(unsigned short** String);
Ove Kaaven0dac9722001-10-14 16:15:37 +0000384#define RpcStringFree WINELIB_NAME_AW(RpcStringFree)
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000385
Ove Kaaven0dac9722001-10-14 16:15:37 +0000386RPCRTAPI RPC_STATUS RPC_ENTRY
Dimitrie O. Paun48be9c62002-12-24 00:26:55 +0000387 UuidToStringA( UUID* Uuid, unsigned char** StringUuid );
Ove Kaaven0dac9722001-10-14 16:15:37 +0000388RPCRTAPI RPC_STATUS RPC_ENTRY
Dimitrie O. Paun48be9c62002-12-24 00:26:55 +0000389 UuidToStringW( UUID* Uuid, unsigned short** StringUuid );
Ove Kaaven0dac9722001-10-14 16:15:37 +0000390#define UuidToString WINELIB_NAME_AW(UuidToString)
Peter Hunnisett8cec3cff2001-07-11 20:19:06 +0000391
Ove Kaaven29b30612002-08-09 01:11:39 +0000392RPCRTAPI RPC_STATUS RPC_ENTRY
Dimitrie O. Paun48be9c62002-12-24 00:26:55 +0000393 UuidFromStringA( unsigned char* StringUuid, UUID* Uuid );
Ove Kaaven29b30612002-08-09 01:11:39 +0000394RPCRTAPI RPC_STATUS RPC_ENTRY
Dimitrie O. Paun48be9c62002-12-24 00:26:55 +0000395 UuidFromStringW( unsigned short* StringUuid, UUID* Uuid );
Ove Kaaven29b30612002-08-09 01:11:39 +0000396#define UuidFromString WINELIB_NAME_AW(UuidFromString)
397
398RPCRTAPI RPC_STATUS RPC_ENTRY
399 UuidCreate( UUID* Uuid );
400RPCRTAPI RPC_STATUS RPC_ENTRY
401 UuidCreateSequential( UUID* Uuid );
402RPCRTAPI RPC_STATUS RPC_ENTRY
403 UuidCreateNil( UUID* Uuid );
404RPCRTAPI signed int RPC_ENTRY
405 UuidCompare( UUID* Uuid1, UUID* Uuid2, RPC_STATUS* Status_ );
406RPCRTAPI int RPC_ENTRY
407 UuidEqual( UUID* Uuid1, UUID* Uuid2, RPC_STATUS* Status_ );
Huw D M Davies2356fbc2001-09-07 15:25:51 +0000408RPCRTAPI unsigned short RPC_ENTRY
Ove Kaaven0dac9722001-10-14 16:15:37 +0000409 UuidHash(UUID* Uuid, RPC_STATUS* Status_ );
Ove Kaaven29b30612002-08-09 01:11:39 +0000410RPCRTAPI int RPC_ENTRY
411 UuidIsNil( UUID* Uuid, RPC_STATUS* Status_ );
Huw D M Davies2356fbc2001-09-07 15:25:51 +0000412
Peter Lemenkov66f839d2005-11-14 11:20:30 +0000413#ifdef __cplusplus
414}
415#endif
416
Dimitrie O. Paun53f9c212003-08-28 21:43:34 +0000417#include <rpcdcep.h>
Francois Gouget552fddc2000-11-08 05:06:10 +0000418
419#endif /*__WINE_RPCDCE_H */