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