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