comparison fuhtark_test/include/winapi/rpcdce.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef __RPCDCE_H__
7 #define __RPCDCE_H__
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 #ifndef _NO_W32_PSEUDO_MODIFIERS
14 #ifndef IN
15 #define IN
16 #endif
17 #ifndef OUT
18 #define OUT
19 #endif
20 #ifndef OPTIONAL
21 #define OPTIONAL
22 #endif
23 #endif
24
25 #ifndef DECLSPEC_NORETURN
26 #define DECLSPEC_NORETURN __declspec(noreturn)
27 #endif
28
29 #include <specstrings.h>
30
31 typedef unsigned char *RPC_CSTR;
32 typedef unsigned short *RPC_WSTR;
33 typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
34 typedef RPC_BINDING_HANDLE handle_t;
35
36 #define rpc_binding_handle_t RPC_BINDING_HANDLE
37
38 #include <guiddef.h>
39
40 #ifndef UUID_DEFINED
41 #define UUID_DEFINED
42 typedef GUID UUID;
43 #ifndef uuid_t
44 #define uuid_t UUID
45 #endif
46 #endif
47
48 typedef struct _RPC_BINDING_VECTOR {
49 unsigned long Count;
50 RPC_BINDING_HANDLE BindingH[1];
51 } RPC_BINDING_VECTOR;
52 #ifndef rpc_binding_vector_t
53 #define rpc_binding_vector_t RPC_BINDING_VECTOR
54 #endif
55
56 typedef struct _UUID_VECTOR {
57 unsigned long Count;
58 UUID *Uuid[1];
59 } UUID_VECTOR;
60 #ifndef uuid_vector_t
61 #define uuid_vector_t UUID_VECTOR
62 #endif
63
64 typedef void *RPC_IF_HANDLE;
65
66 #ifndef IFID_DEFINED
67 #define IFID_DEFINED
68 typedef struct _RPC_IF_ID {
69 UUID Uuid;
70 unsigned short VersMajor;
71 unsigned short VersMinor;
72 } RPC_IF_ID;
73 #endif
74
75 #define RPC_C_BINDING_INFINITE_TIMEOUT 10
76 #define RPC_C_BINDING_MIN_TIMEOUT 0
77 #define RPC_C_BINDING_DEFAULT_TIMEOUT 5
78 #define RPC_C_BINDING_MAX_TIMEOUT 9
79
80 #define RPC_C_CANCEL_INFINITE_TIMEOUT -1
81
82 #define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
83 #define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
84
85 #define RPC_C_BIND_TO_ALL_NICS 1
86 #define RPC_C_USE_INTERNET_PORT 0x1
87 #define RPC_C_USE_INTRANET_PORT 0x2
88 #define RPC_C_DONT_FAIL 0x4
89
90 #define RPC_C_MQ_TEMPORARY 0x0000
91 #define RPC_C_MQ_PERMANENT 0x0001
92 #define RPC_C_MQ_CLEAR_ON_OPEN 0x0002
93 #define RPC_C_MQ_USE_EXISTING_SECURITY 0x0004
94 #define RPC_C_MQ_AUTHN_LEVEL_NONE 0x0000
95 #define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY 0x0008
96 #define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY 0x0010
97
98 #define RPC_C_OPT_MQ_DELIVERY 1
99 #define RPC_C_OPT_MQ_PRIORITY 2
100 #define RPC_C_OPT_MQ_JOURNAL 3
101 #define RPC_C_OPT_MQ_ACKNOWLEDGE 4
102 #define RPC_C_OPT_MQ_AUTHN_SERVICE 5
103 #define RPC_C_OPT_MQ_AUTHN_LEVEL 6
104 #define RPC_C_OPT_MQ_TIME_TO_REACH_QUEUE 7
105 #define RPC_C_OPT_MQ_TIME_TO_BE_RECEIVED 8
106 #define RPC_C_OPT_BINDING_NONCAUSAL 9
107 #define RPC_C_OPT_SECURITY_CALLBACK 10
108 #define RPC_C_OPT_UNIQUE_BINDING 11
109 #define RPC_C_OPT_CALL_TIMEOUT 12
110 #define RPC_C_OPT_DONT_LINGER 13
111 #define RPC_C_OPT_MAX_OPTIONS 14
112
113 #define RPC_C_MQ_EXPRESS 0
114 #define RPC_C_MQ_RECOVERABLE 1
115
116 #define RPC_C_MQ_JOURNAL_NONE 0
117 #define RPC_C_MQ_JOURNAL_DEADLETTER 1
118 #define RPC_C_MQ_JOURNAL_ALWAYS 2
119
120 #define RPC_C_FULL_CERT_CHAIN 0x0001
121
122 typedef struct _RPC_PROTSEQ_VECTORA {
123 unsigned int Count;
124 unsigned char *Protseq[1];
125 } RPC_PROTSEQ_VECTORA;
126
127 typedef struct _RPC_PROTSEQ_VECTORW {
128 unsigned int Count;
129 unsigned short *Protseq[1];
130 } RPC_PROTSEQ_VECTORW;
131
132 #ifdef UNICODE
133 #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORW
134 #else
135 #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORA
136 #endif
137
138 typedef struct _RPC_POLICY {
139 unsigned int Length;
140 unsigned long EndpointFlags;
141 unsigned long NICFlags;
142 } RPC_POLICY,*PRPC_POLICY;
143
144 typedef void __RPC_API RPC_OBJECT_INQ_FN(UUID *ObjectUuid,UUID *TypeUuid,RPC_STATUS *Status);
145 typedef RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN(RPC_IF_HANDLE InterfaceUuid,void *Context);
146 typedef void RPC_ENTRY RPC_SECURITY_CALLBACK_FN(void *Context);
147
148 #define RPC_MGR_EPV void
149
150 typedef struct {
151 unsigned int Count;
152 unsigned long Stats[1];
153 } RPC_STATS_VECTOR;
154
155 #define RPC_C_STATS_CALLS_IN 0
156 #define RPC_C_STATS_CALLS_OUT 1
157 #define RPC_C_STATS_PKTS_IN 2
158 #define RPC_C_STATS_PKTS_OUT 3
159
160 typedef struct {
161 unsigned long Count;
162 RPC_IF_ID *IfId[1];
163 } RPC_IF_ID_VECTOR;
164
165 #ifdef UNICODE
166 #define RpcBindingFromStringBinding RpcBindingFromStringBindingW
167 #define RpcBindingToStringBinding RpcBindingToStringBindingW
168 #define RpcStringBindingCompose RpcStringBindingComposeW
169 #define RpcStringBindingParse RpcStringBindingParseW
170 #define RpcStringFree RpcStringFreeW
171 #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW
172 #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsW
173 #define RpcProtseqVectorFree RpcProtseqVectorFreeW
174 #define RpcServerUseProtseq RpcServerUseProtseqW
175 #define RpcServerUseProtseqEx RpcServerUseProtseqExW
176 #define RpcServerUseProtseqEp RpcServerUseProtseqEpW
177 #define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExW
178 #define RpcServerUseProtseqIf RpcServerUseProtseqIfW
179 #define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExW
180 #define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameW
181 #define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameW
182 #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameW
183 #else
184 #define RpcBindingFromStringBinding RpcBindingFromStringBindingA
185 #define RpcBindingToStringBinding RpcBindingToStringBindingA
186 #define RpcStringBindingCompose RpcStringBindingComposeA
187 #define RpcStringBindingParse RpcStringBindingParseA
188 #define RpcStringFree RpcStringFreeA
189 #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidA
190 #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsA
191 #define RpcProtseqVectorFree RpcProtseqVectorFreeA
192 #define RpcServerUseProtseq RpcServerUseProtseqA
193 #define RpcServerUseProtseqEx RpcServerUseProtseqExA
194 #define RpcServerUseProtseqEp RpcServerUseProtseqEpA
195 #define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExA
196 #define RpcServerUseProtseqIf RpcServerUseProtseqIfA
197 #define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExA
198 #define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameA
199 #define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameA
200 #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameA
201 #endif
202
203 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingCopy(RPC_BINDING_HANDLE SourceBinding,RPC_BINDING_HANDLE *DestinationBinding);
204 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFree(RPC_BINDING_HANDLE *Binding);
205 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetOption(RPC_BINDING_HANDLE hBinding,unsigned long option,ULONG_PTR optionValue);
206 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqOption(RPC_BINDING_HANDLE hBinding,unsigned long option,ULONG_PTR *pOptionValue);
207 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingA(RPC_CSTR StringBinding,RPC_BINDING_HANDLE *Binding);
208 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingW(RPC_WSTR StringBinding,RPC_BINDING_HANDLE *Binding);
209 RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsGetContextBinding(void *ContextHandle,RPC_BINDING_HANDLE *Binding);
210 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqObject(RPC_BINDING_HANDLE Binding,UUID *ObjectUuid);
211 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingReset(RPC_BINDING_HANDLE Binding);
212 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetObject(RPC_BINDING_HANDLE Binding,UUID *ObjectUuid);
213 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqDefaultProtectLevel(unsigned long AuthnSvc,unsigned long *AuthnLevel);
214 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingToStringBindingA(RPC_BINDING_HANDLE Binding,RPC_CSTR *StringBinding);
215 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingToStringBindingW(RPC_BINDING_HANDLE Binding,RPC_WSTR *StringBinding);
216 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingVectorFree(RPC_BINDING_VECTOR **BindingVector);
217 RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingComposeA(RPC_CSTR ObjUuid,RPC_CSTR Protseq,RPC_CSTR NetworkAddr,RPC_CSTR Endpoint,RPC_CSTR Options,RPC_CSTR *StringBinding);
218 RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingComposeW(RPC_WSTR ObjUuid,RPC_WSTR Protseq,RPC_WSTR NetworkAddr,RPC_WSTR Endpoint,RPC_WSTR Options,RPC_WSTR *StringBinding);
219 RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingParseA(RPC_CSTR StringBinding,RPC_CSTR *ObjUuid,RPC_CSTR *Protseq,RPC_CSTR *NetworkAddr,RPC_CSTR *Endpoint,RPC_CSTR *NetworkOptions);
220 RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingParseW(RPC_WSTR StringBinding,RPC_WSTR *ObjUuid,RPC_WSTR *Protseq,RPC_WSTR *NetworkAddr,RPC_WSTR *Endpoint,RPC_WSTR *NetworkOptions);
221 RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringFreeA(RPC_CSTR *String);
222 RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringFreeW(RPC_WSTR *String);
223 RPCRTAPI RPC_STATUS RPC_ENTRY RpcIfInqId(RPC_IF_HANDLE RpcIfHandle,RPC_IF_ID *RpcIfId);
224 RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidA(RPC_CSTR Protseq);
225 RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidW(RPC_WSTR Protseq);
226 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqComTimeout(RPC_BINDING_HANDLE Binding,unsigned int *Timeout);
227 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetComTimeout(RPC_BINDING_HANDLE Binding,unsigned int Timeout);
228 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetCancelTimeout(long Timeout);
229 RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsA (RPC_PROTSEQ_VECTORA **ProtseqVector);
230 RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsW (RPC_PROTSEQ_VECTORW **ProtseqVector);
231 RPCRTAPI RPC_STATUS RPC_ENTRY RpcObjectInqType(UUID *ObjUuid,UUID *TypeUuid);
232 RPCRTAPI RPC_STATUS RPC_ENTRY RpcObjectSetInqFn(RPC_OBJECT_INQ_FN *InquiryFn);
233 RPCRTAPI RPC_STATUS RPC_ENTRY RpcObjectSetType(UUID *ObjUuid,UUID *TypeUuid);
234 RPCRTAPI RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeA(RPC_PROTSEQ_VECTORA **ProtseqVector);
235 RPCRTAPI RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeW(RPC_PROTSEQ_VECTORW **ProtseqVector);
236 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqBindings (RPC_BINDING_VECTOR **BindingVector);
237 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqIf(RPC_IF_HANDLE IfSpec,UUID *MgrTypeUuid,RPC_MGR_EPV **MgrEpv);
238 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerListen(unsigned int MinimumCallThreads,unsigned int MaxCalls,unsigned int DontWait);
239 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIf(RPC_IF_HANDLE IfSpec,UUID *MgrTypeUuid,RPC_MGR_EPV *MgrEpv);
240 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIfEx(RPC_IF_HANDLE IfSpec,UUID *MgrTypeUuid,RPC_MGR_EPV *MgrEpv,unsigned int Flags,unsigned int MaxCalls,RPC_IF_CALLBACK_FN *IfCallback);
241 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIf2(RPC_IF_HANDLE IfSpec,UUID *MgrTypeUuid,RPC_MGR_EPV *MgrEpv,unsigned int Flags,unsigned int MaxCalls,unsigned int MaxRpcSize,RPC_IF_CALLBACK_FN *IfCallbackFn);
242 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUnregisterIf(RPC_IF_HANDLE IfSpec,UUID *MgrTypeUuid,unsigned int WaitForCallsToComplete);
243 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUnregisterIfEx(RPC_IF_HANDLE IfSpec,UUID *MgrTypeUuid,int RundownContextHandles);
244 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqs(unsigned int MaxCalls,void *SecurityDescriptor);
245 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsEx(unsigned int MaxCalls,void *SecurityDescriptor,PRPC_POLICY Policy);
246 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsIf(unsigned int MaxCalls,RPC_IF_HANDLE IfSpec,void *SecurityDescriptor);
247 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsIfEx(unsigned int MaxCalls,RPC_IF_HANDLE IfSpec,void *SecurityDescriptor,PRPC_POLICY Policy);
248 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqA(RPC_CSTR Protseq,unsigned int MaxCalls,void *SecurityDescriptor);
249 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqExA(RPC_CSTR Protseq,unsigned int MaxCalls,void *SecurityDescriptor,PRPC_POLICY Policy);
250 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqW(RPC_WSTR Protseq,unsigned int MaxCalls,void *SecurityDescriptor);
251 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqExW(RPC_WSTR Protseq,unsigned int MaxCalls,void *SecurityDescriptor,PRPC_POLICY Policy);
252 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpA(RPC_CSTR Protseq,unsigned int MaxCalls,RPC_CSTR Endpoint,void *SecurityDescriptor);
253 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExA(RPC_CSTR Protseq,unsigned int MaxCalls,RPC_CSTR Endpoint,void *SecurityDescriptor,PRPC_POLICY Policy);
254 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpW(RPC_WSTR Protseq,unsigned int MaxCalls,RPC_WSTR Endpoint,void *SecurityDescriptor);
255 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExW(RPC_WSTR Protseq,unsigned int MaxCalls,RPC_WSTR Endpoint,void *SecurityDescriptor,PRPC_POLICY Policy);
256 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfA(RPC_CSTR Protseq,unsigned int MaxCalls,RPC_IF_HANDLE IfSpec,void *SecurityDescriptor);
257 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfExA(RPC_CSTR Protseq,unsigned int MaxCalls,RPC_IF_HANDLE IfSpec,void *SecurityDescriptor,PRPC_POLICY Policy);
258 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfW(RPC_WSTR Protseq,unsigned int MaxCalls,RPC_IF_HANDLE IfSpec,void *SecurityDescriptor);
259 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfExW(RPC_WSTR Protseq,unsigned int MaxCalls,RPC_IF_HANDLE IfSpec,void *SecurityDescriptor,PRPC_POLICY Policy);
260 RPCRTAPI void RPC_ENTRY RpcServerYield ();
261 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtStatsVectorFree(RPC_STATS_VECTOR **StatsVector);
262 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqStats(RPC_BINDING_HANDLE Binding,RPC_STATS_VECTOR **Statistics);
263 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtIsServerListening(RPC_BINDING_HANDLE Binding);
264 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtStopServerListening(RPC_BINDING_HANDLE Binding);
265 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtWaitServerListen(void);
266 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetServerStackSize(unsigned long ThreadStackSize);
267 RPCRTAPI void RPC_ENTRY RpcSsDontSerializeContext(void);
268 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEnableIdleCleanup(void);
269 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqIfIds(RPC_BINDING_HANDLE Binding,RPC_IF_ID_VECTOR **IfIdVector);
270 RPCRTAPI RPC_STATUS RPC_ENTRY RpcIfIdVectorFree(RPC_IF_ID_VECTOR **IfIdVector);
271 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincNameA(RPC_BINDING_HANDLE Binding,unsigned long AuthnSvc,RPC_CSTR *ServerPrincName);
272 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincNameW(RPC_BINDING_HANDLE Binding,unsigned long AuthnSvc,RPC_WSTR *ServerPrincName);
273 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameA(unsigned long AuthnSvc,RPC_CSTR *PrincName);
274 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameW(unsigned long AuthnSvc,RPC_WSTR *PrincName);
275 RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpResolveBinding(RPC_BINDING_HANDLE Binding,RPC_IF_HANDLE IfSpec);
276 RPCRTAPI RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryNameA(RPC_BINDING_HANDLE Binding,unsigned long EntryNameSyntax,RPC_CSTR *EntryName);
277 RPCRTAPI RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryNameW(RPC_BINDING_HANDLE Binding,unsigned long EntryNameSyntax,RPC_WSTR *EntryName);
278
279 typedef void *RPC_AUTH_IDENTITY_HANDLE;
280 typedef void *RPC_AUTHZ_HANDLE;
281
282 #define RPC_C_AUTHN_LEVEL_DEFAULT 0
283 #define RPC_C_AUTHN_LEVEL_NONE 1
284 #define RPC_C_AUTHN_LEVEL_CONNECT 2
285 #define RPC_C_AUTHN_LEVEL_CALL 3
286 #define RPC_C_AUTHN_LEVEL_PKT 4
287 #define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
288 #define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6
289
290 #define RPC_C_IMP_LEVEL_DEFAULT 0
291 #define RPC_C_IMP_LEVEL_ANONYMOUS 1
292 #define RPC_C_IMP_LEVEL_IDENTIFY 2
293 #define RPC_C_IMP_LEVEL_IMPERSONATE 3
294 #define RPC_C_IMP_LEVEL_DELEGATE 4
295
296 #define RPC_C_QOS_IDENTITY_STATIC 0
297 #define RPC_C_QOS_IDENTITY_DYNAMIC 1
298
299 #define RPC_C_QOS_CAPABILITIES_DEFAULT 0x0
300 #define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH 0x1
301 #define RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC 0x2
302 #define RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY 0x4
303 #define RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE 0x8
304 #define RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT 0x10
305
306 #define RPC_C_PROTECT_LEVEL_DEFAULT (RPC_C_AUTHN_LEVEL_DEFAULT)
307 #define RPC_C_PROTECT_LEVEL_NONE (RPC_C_AUTHN_LEVEL_NONE)
308 #define RPC_C_PROTECT_LEVEL_CONNECT (RPC_C_AUTHN_LEVEL_CONNECT)
309 #define RPC_C_PROTECT_LEVEL_CALL (RPC_C_AUTHN_LEVEL_CALL)
310 #define RPC_C_PROTECT_LEVEL_PKT (RPC_C_AUTHN_LEVEL_PKT)
311 #define RPC_C_PROTECT_LEVEL_PKT_INTEGRITY (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY)
312 #define RPC_C_PROTECT_LEVEL_PKT_PRIVACY (RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
313
314 #define RPC_C_AUTHN_NONE 0
315 #define RPC_C_AUTHN_DCE_PRIVATE 1
316 #define RPC_C_AUTHN_DCE_PUBLIC 2
317 #define RPC_C_AUTHN_DEC_PUBLIC 4
318 #define RPC_C_AUTHN_GSS_NEGOTIATE 9
319 #define RPC_C_AUTHN_WINNT 10
320 #define RPC_C_AUTHN_GSS_SCHANNEL 14
321 #define RPC_C_AUTHN_GSS_KERBEROS 16
322 #define RPC_C_AUTHN_DPA 17
323 #define RPC_C_AUTHN_MSN 18
324 #define RPC_C_AUTHN_DIGEST 21
325 #define RPC_C_AUTHN_MQ 100
326 #define RPC_C_AUTHN_DEFAULT 0xFFFFFFFFL
327
328 #define RPC_C_NO_CREDENTIALS ((RPC_AUTH_IDENTITY_HANDLE) MAXUINT_PTR)
329
330 #define RPC_C_SECURITY_QOS_VERSION 1L
331 #define RPC_C_SECURITY_QOS_VERSION_1 1L
332
333 typedef struct _RPC_SECURITY_QOS {
334 unsigned long Version;
335 unsigned long Capabilities;
336 unsigned long IdentityTracking;
337 unsigned long ImpersonationType;
338 } RPC_SECURITY_QOS,*PRPC_SECURITY_QOS;
339
340 #ifndef _AUTH_IDENTITY_DEFINED
341 #define _AUTH_IDENTITY_DEFINED
342
343 #define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1
344 #define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2
345
346 typedef struct _SEC_WINNT_AUTH_IDENTITY_W {
347 unsigned short *User;
348 unsigned long UserLength;
349 unsigned short *Domain;
350 unsigned long DomainLength;
351 unsigned short *Password;
352 unsigned long PasswordLength;
353 unsigned long Flags;
354 } SEC_WINNT_AUTH_IDENTITY_W,*PSEC_WINNT_AUTH_IDENTITY_W;
355
356 typedef struct _SEC_WINNT_AUTH_IDENTITY_A {
357 unsigned char *User;
358 unsigned long UserLength;
359 unsigned char *Domain;
360 unsigned long DomainLength;
361 unsigned char *Password;
362 unsigned long PasswordLength;
363 unsigned long Flags;
364 } SEC_WINNT_AUTH_IDENTITY_A,*PSEC_WINNT_AUTH_IDENTITY_A;
365
366 #ifdef UNICODE
367 #define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_W
368 #define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_W
369 #define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_W
370 #else
371 #define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_A
372 #define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_A
373 #define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_A
374 #endif
375
376 #define RPC_C_SECURITY_QOS_VERSION_2 2L
377
378 #define RPC_C_AUTHN_INFO_TYPE_HTTP 1
379
380 #define RPC_C_HTTP_AUTHN_TARGET_SERVER 1
381 #define RPC_C_HTTP_AUTHN_TARGET_PROXY 2
382
383 #define RPC_C_HTTP_AUTHN_SCHEME_BASIC 0x00000001
384 #define RPC_C_HTTP_AUTHN_SCHEME_NTLM 0x00000002
385 #define RPC_C_HTTP_AUTHN_SCHEME_PASSPORT 0x00000004
386 #define RPC_C_HTTP_AUTHN_SCHEME_DIGEST 0x00000008
387 #define RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE 0x00000010
388 #define RPC_C_HTTP_AUTHN_SCHEME_CERT 0x00010000
389
390 #define RPC_C_HTTP_FLAG_USE_SSL 1
391 #define RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME 2
392 #define RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID 8
393
394 typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W {
395 SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
396 unsigned long Flags;
397 unsigned long AuthenticationTarget;
398 unsigned long NumberOfAuthnSchemes;
399 unsigned long *AuthnSchemes;
400 unsigned short *ServerCertificateSubject;
401 } RPC_HTTP_TRANSPORT_CREDENTIALS_W,*PRPC_HTTP_TRANSPORT_CREDENTIALS_W;
402
403 typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A {
404 SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
405 unsigned long Flags;
406 unsigned long AuthenticationTarget;
407 unsigned long NumberOfAuthnSchemes;
408 unsigned long *AuthnSchemes;
409 unsigned char *ServerCertificateSubject;
410 } RPC_HTTP_TRANSPORT_CREDENTIALS_A,*PRPC_HTTP_TRANSPORT_CREDENTIALS_A;
411
412 typedef struct _RPC_SECURITY_QOS_V2_W {
413 unsigned long Version;
414 unsigned long Capabilities;
415 unsigned long IdentityTracking;
416 unsigned long ImpersonationType;
417 unsigned long AdditionalSecurityInfoType;
418 union {
419 RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
420 } u;
421 } RPC_SECURITY_QOS_V2_W,*PRPC_SECURITY_QOS_V2_W;
422
423 typedef struct _RPC_SECURITY_QOS_V2_A {
424 unsigned long Version;
425 unsigned long Capabilities;
426 unsigned long IdentityTracking;
427 unsigned long ImpersonationType;
428 unsigned long AdditionalSecurityInfoType;
429 union {
430 RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
431 } u;
432 } RPC_SECURITY_QOS_V2_A,*PRPC_SECURITY_QOS_V2_A;
433
434 #define RPC_C_SECURITY_QOS_VERSION_3 3L
435
436 typedef struct _RPC_SECURITY_QOS_V3_W {
437 unsigned long Version;
438 unsigned long Capabilities;
439 unsigned long IdentityTracking;
440 unsigned long ImpersonationType;
441 unsigned long AdditionalSecurityInfoType;
442 union {
443 RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials;
444 } u;
445 void *Sid;
446 } RPC_SECURITY_QOS_V3_W,*PRPC_SECURITY_QOS_V3_W;
447
448 typedef struct _RPC_SECURITY_QOS_V3_A {
449 unsigned long Version;
450 unsigned long Capabilities;
451 unsigned long IdentityTracking;
452 unsigned long ImpersonationType;
453 unsigned long AdditionalSecurityInfoType;
454 union {
455 RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
456 } u;
457 void *Sid;
458 } RPC_SECURITY_QOS_V3_A,*PRPC_SECURITY_QOS_V3_A;
459 #endif
460
461 #ifdef UNICODE
462 #define RPC_SECURITY_QOS_V2 RPC_SECURITY_QOS_V2_W
463 #define PRPC_SECURITY_QOS_V2 PRPC_SECURITY_QOS_V2_W
464 #define _RPC_SECURITY_QOS_V2 _RPC_SECURITY_QOS_V2_W
465 #define RPC_HTTP_TRANSPORT_CREDENTIALS RPC_HTTP_TRANSPORT_CREDENTIALS_W
466 #define PRPC_HTTP_TRANSPORT_CREDENTIALS PRPC_HTTP_TRANSPORT_CREDENTIALS_W
467 #define _RPC_HTTP_TRANSPORT_CREDENTIALS _RPC_HTTP_TRANSPORT_CREDENTIALS_W
468 #define RPC_SECURITY_QOS_V3 RPC_SECURITY_QOS_V3_W
469 #define PRPC_SECURITY_QOS_V3 PRPC_SECURITY_QOS_V3_W
470 #define _RPC_SECURITY_QOS_V3 _RPC_SECURITY_QOS_V3_W
471 #else
472 #define RPC_SECURITY_QOS_V2 RPC_SECURITY_QOS_V2_A
473 #define PRPC_SECURITY_QOS_V2 PRPC_SECURITY_QOS_V2_A
474 #define _RPC_SECURITY_QOS_V2 _RPC_SECURITY_QOS_V2_A
475 #define RPC_HTTP_TRANSPORT_CREDENTIALS RPC_HTTP_TRANSPORT_CREDENTIALS_A
476 #define PRPC_HTTP_TRANSPORT_CREDENTIALS PRPC_HTTP_TRANSPORT_CREDENTIALS_A
477 #define _RPC_HTTP_TRANSPORT_CREDENTIALS _RPC_HTTP_TRANSPORT_CREDENTIALS_A
478 #define RPC_SECURITY_QOS_V3 RPC_SECURITY_QOS_V3_A
479 #define PRPC_SECURITY_QOS_V3 PRPC_SECURITY_QOS_V3_A
480 #define _RPC_SECURITY_QOS_V3 _RPC_SECURITY_QOS_V3_A
481 #endif
482
483 typedef enum _RPC_HTTP_REDIRECTOR_STAGE {
484 RPCHTTP_RS_REDIRECT = 1,RPCHTTP_RS_ACCESS_1,RPCHTTP_RS_SESSION,RPCHTTP_RS_ACCESS_2,RPCHTTP_RS_INTERFACE
485 } RPC_HTTP_REDIRECTOR_STAGE;
486
487 typedef RPC_STATUS (__RPC_API *RPC_NEW_HTTP_PROXY_CHANNEL)(RPC_HTTP_REDIRECTOR_STAGE RedirectorStage,unsigned short *ServerName,unsigned short *ServerPort,unsigned short *RemoteUser,unsigned short *AuthType,void *ResourceUuid,void *Metadata,void *SessionId,void *Interface,void *Reserved,unsigned long Flags,unsigned short **NewServerName,unsigned short **NewServerPort);
488 typedef void (__RPC_API *RPC_HTTP_PROXY_FREE_STRING)(unsigned short *String);
489
490 #define RPC_C_AUTHZ_NONE 0
491 #define RPC_C_AUTHZ_NAME 1
492 #define RPC_C_AUTHZ_DCE 2
493 #define RPC_C_AUTHZ_DEFAULT 0xffffffff
494
495 RPCRTAPI RPC_STATUS RPC_ENTRY RpcImpersonateClient(RPC_BINDING_HANDLE BindingHandle);
496 RPCRTAPI RPC_STATUS RPC_ENTRY RpcRevertToSelfEx(RPC_BINDING_HANDLE BindingHandle);
497 RPCRTAPI RPC_STATUS RPC_ENTRY RpcRevertToSelf();
498 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientA(RPC_BINDING_HANDLE ClientBinding,RPC_AUTHZ_HANDLE *Privs,RPC_CSTR *ServerPrincName,unsigned long *AuthnLevel,unsigned long *AuthnSvc,unsigned long *AuthzSvc);
499 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientW(RPC_BINDING_HANDLE ClientBinding,RPC_AUTHZ_HANDLE *Privs,RPC_WSTR *ServerPrincName,unsigned long *AuthnLevel,unsigned long *AuthnSvc,unsigned long *AuthzSvc);
500 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExA(RPC_BINDING_HANDLE ClientBinding,RPC_AUTHZ_HANDLE *Privs,RPC_CSTR *ServerPrincName,unsigned long *AuthnLevel,unsigned long *AuthnSvc,unsigned long *AuthzSvc,unsigned long Flags);
501 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExW(RPC_BINDING_HANDLE ClientBinding,RPC_AUTHZ_HANDLE *Privs,RPC_WSTR *ServerPrincName,unsigned long *AuthnLevel,unsigned long *AuthnSvc,unsigned long *AuthzSvc,unsigned long Flags);
502 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE Binding,RPC_CSTR *ServerPrincName,unsigned long *AuthnLevel,unsigned long *AuthnSvc,RPC_AUTH_IDENTITY_HANDLE *AuthIdentity,unsigned long *AuthzSvc);
503 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE Binding,RPC_WSTR *ServerPrincName,unsigned long *AuthnLevel,unsigned long *AuthnSvc,RPC_AUTH_IDENTITY_HANDLE *AuthIdentity,unsigned long *AuthzSvc);
504 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE Binding,RPC_CSTR ServerPrincName,unsigned long AuthnLevel,unsigned long AuthnSvc,RPC_AUTH_IDENTITY_HANDLE AuthIdentity,unsigned long AuthzSvc);
505 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExA(RPC_BINDING_HANDLE Binding,RPC_CSTR ServerPrincName,unsigned long AuthnLevel,unsigned long AuthnSvc,RPC_AUTH_IDENTITY_HANDLE AuthIdentity,unsigned long AuthzSvc,RPC_SECURITY_QOS *SecurityQos);
506 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE Binding,RPC_WSTR ServerPrincName,unsigned long AuthnLevel,unsigned long AuthnSvc,RPC_AUTH_IDENTITY_HANDLE AuthIdentity,unsigned long AuthzSvc);
507 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExW(RPC_BINDING_HANDLE Binding,RPC_WSTR ServerPrincName,unsigned long AuthnLevel,unsigned long AuthnSvc,RPC_AUTH_IDENTITY_HANDLE AuthIdentity,unsigned long AuthzSvc,RPC_SECURITY_QOS *SecurityQOS);
508 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExA(RPC_BINDING_HANDLE Binding,RPC_CSTR *ServerPrincName,unsigned long *AuthnLevel,unsigned long *AuthnSvc,RPC_AUTH_IDENTITY_HANDLE *AuthIdentity,unsigned long *AuthzSvc,unsigned long RpcQosVersion,RPC_SECURITY_QOS *SecurityQOS);
509 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE Binding,RPC_WSTR *ServerPrincName,unsigned long *AuthnLevel,unsigned long *AuthnSvc,RPC_AUTH_IDENTITY_HANDLE *AuthIdentity,unsigned long *AuthzSvc,unsigned long RpcQosVersion,RPC_SECURITY_QOS *SecurityQOS);
510
511 typedef void (__RPC_API *RPC_AUTH_KEY_RETRIEVAL_FN)(void *Arg,unsigned short *ServerPrincName,unsigned long KeyVer,void **Key,RPC_STATUS *Status);
512
513 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoA(RPC_CSTR ServerPrincName,unsigned long AuthnSvc,RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,void *Arg);
514 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoW(RPC_WSTR ServerPrincName,unsigned long AuthnSvc,RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,void *Arg);
515
516 #ifdef UNICODE
517 #define RpcBindingInqAuthClient RpcBindingInqAuthClientW
518 #define RpcBindingInqAuthClientEx RpcBindingInqAuthClientExW
519 #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoW
520 #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoW
521 #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoW
522 #define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExW
523 #define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExW
524 #else
525 #define RpcBindingInqAuthClient RpcBindingInqAuthClientA
526 #define RpcBindingInqAuthClientEx RpcBindingInqAuthClientExA
527 #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoA
528 #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoA
529 #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoA
530 #define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExA
531 #define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExA
532 #endif
533
534 #ifndef __ia64__
535 typedef struct {
536 unsigned char *UserName;
537 unsigned char *ComputerName;
538 unsigned short Privilege;
539 unsigned long AuthFlags;
540 } RPC_CLIENT_INFORMATION1,*PRPC_CLIENT_INFORMATION1;
541 #endif
542
543 #ifdef UNICODE
544 #define UuidFromString UuidFromStringW
545 #define UuidToString UuidToStringW
546 #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceW
547 #define RpcEpRegister RpcEpRegisterW
548 #define DceErrorInqText DceErrorInqTextW
549 #else
550 #define UuidFromString UuidFromStringA
551 #define UuidToString UuidToStringA
552 #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceA
553 #define RpcEpRegister RpcEpRegisterA
554 #define DceErrorInqText DceErrorInqTextA
555 #endif
556
557 #define DCE_C_ERROR_STRING_LEN 256
558
559 RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingServerFromClient(RPC_BINDING_HANDLE ClientBinding,RPC_BINDING_HANDLE *ServerBinding);
560 RPCRTAPI DECLSPEC_NORETURN void RPC_ENTRY RpcRaiseException(RPC_STATUS exception);
561 RPCRTAPI RPC_STATUS RPC_ENTRY RpcTestCancel();
562 RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerTestCancel(RPC_BINDING_HANDLE BindingHandle);
563 RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThread(void *Thread);
564 RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThreadEx(void *Thread,long Timeout);
565 RPCRTAPI RPC_STATUS RPC_ENTRY UuidCreate(UUID *Uuid);
566 RPCRTAPI RPC_STATUS RPC_ENTRY UuidCreateSequential(UUID *Uuid);
567 RPCRTAPI RPC_STATUS RPC_ENTRY UuidToStringA(UUID *Uuid,RPC_CSTR *StringUuid);
568 RPCRTAPI RPC_STATUS RPC_ENTRY UuidFromStringA(RPC_CSTR StringUuid,UUID *Uuid);
569 RPCRTAPI RPC_STATUS RPC_ENTRY UuidToStringW(UUID *Uuid,RPC_WSTR *StringUuid);
570 RPCRTAPI RPC_STATUS RPC_ENTRY UuidFromStringW(RPC_WSTR StringUuid,UUID *Uuid);
571 RPCRTAPI signed int RPC_ENTRY UuidCompare(UUID *Uuid1,UUID *Uuid2,RPC_STATUS *Status);
572 RPCRTAPI RPC_STATUS RPC_ENTRY UuidCreateNil(UUID *NilUuid);
573 RPCRTAPI int RPC_ENTRY UuidEqual(UUID *Uuid1,UUID *Uuid2,RPC_STATUS *Status);
574 RPCRTAPI unsigned short RPC_ENTRY UuidHash(UUID *Uuid,RPC_STATUS *Status);
575 RPCRTAPI int RPC_ENTRY UuidIsNil(UUID *Uuid,RPC_STATUS *Status);
576 RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceA(RPC_IF_HANDLE IfSpec,RPC_BINDING_VECTOR *BindingVector,UUID_VECTOR *UuidVector,RPC_CSTR Annotation);
577 RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceW(RPC_IF_HANDLE IfSpec,RPC_BINDING_VECTOR *BindingVector,UUID_VECTOR *UuidVector,RPC_WSTR Annotation);
578 RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterA(RPC_IF_HANDLE IfSpec,RPC_BINDING_VECTOR *BindingVector,UUID_VECTOR *UuidVector,RPC_CSTR Annotation);
579 RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterW(RPC_IF_HANDLE IfSpec,RPC_BINDING_VECTOR *BindingVector,UUID_VECTOR *UuidVector,RPC_WSTR Annotation);
580 RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpUnregister(RPC_IF_HANDLE IfSpec,RPC_BINDING_VECTOR *BindingVector,UUID_VECTOR *UuidVector);
581 RPCRTAPI RPC_STATUS RPC_ENTRY DceErrorInqTextA(RPC_STATUS RpcStatus,RPC_CSTR ErrorText);
582 RPCRTAPI RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS RpcStatus,RPC_WSTR ErrorText);
583
584 typedef I_RPC_HANDLE *RPC_EP_INQ_HANDLE;
585
586 #define RPC_C_EP_ALL_ELTS 0
587 #define RPC_C_EP_MATCH_BY_IF 1
588 #define RPC_C_EP_MATCH_BY_OBJ 2
589 #define RPC_C_EP_MATCH_BY_BOTH 3
590
591 #define RPC_C_VERS_ALL 1
592 #define RPC_C_VERS_COMPATIBLE 2
593 #define RPC_C_VERS_EXACT 3
594 #define RPC_C_VERS_MAJOR_ONLY 4
595 #define RPC_C_VERS_UPTO 5
596
597 #ifdef UNICODE
598 #define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextW
599 #else
600 #define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextA
601 #endif
602
603 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE EpBinding,unsigned long InquiryType,RPC_IF_ID *IfId,unsigned long VersOption,UUID *ObjectUuid,RPC_EP_INQ_HANDLE *InquiryContext);
604 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE *InquiryContext);
605 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE InquiryContext,RPC_IF_ID *IfId,RPC_BINDING_HANDLE *Binding,UUID *ObjectUuid,RPC_CSTR *Annotation);
606 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE InquiryContext,RPC_IF_ID *IfId,RPC_BINDING_HANDLE *Binding,UUID *ObjectUuid,RPC_WSTR *Annotation);
607 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpUnregister(RPC_BINDING_HANDLE EpBinding,RPC_IF_ID *IfId,RPC_BINDING_HANDLE Binding,UUID *ObjectUuid);
608
609 typedef int (__RPC_API *RPC_MGMT_AUTHORIZATION_FN)(RPC_BINDING_HANDLE ClientBinding,unsigned long RequestedMgmtOperation,RPC_STATUS *Status);
610
611 #define RPC_C_MGMT_INQ_IF_IDS 0
612 #define RPC_C_MGMT_INQ_PRINC_NAME 1
613 #define RPC_C_MGMT_INQ_STATS 2
614 #define RPC_C_MGMT_IS_SERVER_LISTEN 3
615 #define RPC_C_MGMT_STOP_SERVER_LISTEN 4
616
617 RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN AuthorizationFn);
618
619 #define RPC_C_PARM_MAX_PACKET_LENGTH 1
620 #define RPC_C_PARM_BUFFER_LENGTH 2
621
622 #define RPC_IF_AUTOLISTEN 0x0001
623 #define RPC_IF_OLE 0x0002
624 #define RPC_IF_ALLOW_UNKNOWN_AUTHORITY 0x0004
625 #define RPC_IF_ALLOW_SECURE_ONLY 0x0008
626 #define RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH 0x0010
627 #define RPC_IF_ALLOW_LOCAL_ONLY 0x0020
628 #define RPC_IF_SEC_NO_CACHE 0x0040
629
630 #include <rpcdcep.h>
631
632 #ifdef __cplusplus
633 }
634 #endif
635 #endif