/src/FreeRDP/winpr/libwinpr/rpc/rpc.c
Line | Count | Source (jump to first uncovered line) |
1 | | /** |
2 | | * WinPR: Windows Portable Runtime |
3 | | * Microsoft Remote Procedure Call (MSRPC) |
4 | | * |
5 | | * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com> |
6 | | * |
7 | | * Licensed under the Apache License, Version 2.0 (the "License"); |
8 | | * you may not use this file except in compliance with the License. |
9 | | * You may obtain a copy of the License at |
10 | | * |
11 | | * http://www.apache.org/licenses/LICENSE-2.0 |
12 | | * |
13 | | * Unless required by applicable law or agreed to in writing, software |
14 | | * distributed under the License is distributed on an "AS IS" BASIS, |
15 | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
16 | | * See the License for the specific language governing permissions and |
17 | | * limitations under the License. |
18 | | */ |
19 | | |
20 | | #include <winpr/config.h> |
21 | | |
22 | | #include <winpr/crt.h> |
23 | | #include <winpr/rpc.h> |
24 | | #include <winpr/crypto.h> |
25 | | |
26 | | #if !defined(_WIN32) || defined(_UWP) |
27 | | |
28 | | #include "../log.h" |
29 | | #define TAG WINPR_TAG("rpc") |
30 | | |
31 | | RPC_STATUS RpcBindingCopy(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE SourceBinding, |
32 | | WINPR_ATTR_UNUSED RPC_BINDING_HANDLE* DestinationBinding) |
33 | 0 | { |
34 | 0 | WLog_ERR(TAG, "Not implemented"); |
35 | 0 | return 0; |
36 | 0 | } |
37 | | |
38 | | RPC_STATUS RpcBindingFree(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE* Binding) |
39 | 0 | { |
40 | 0 | WLog_ERR(TAG, "Not implemented"); |
41 | 0 | return 0; |
42 | 0 | } |
43 | | |
44 | | RPC_STATUS RpcBindingSetOption(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE hBinding, |
45 | | WINPR_ATTR_UNUSED unsigned long option, |
46 | | WINPR_ATTR_UNUSED ULONG_PTR optionValue) |
47 | 0 | { |
48 | 0 | WLog_ERR(TAG, "Not implemented"); |
49 | 0 | return 0; |
50 | 0 | } |
51 | | |
52 | | RPC_STATUS RpcBindingInqOption(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE hBinding, |
53 | | WINPR_ATTR_UNUSED unsigned long option, |
54 | | WINPR_ATTR_UNUSED ULONG_PTR* pOptionValue) |
55 | 0 | { |
56 | 0 | WLog_ERR(TAG, "Not implemented"); |
57 | 0 | return 0; |
58 | 0 | } |
59 | | |
60 | | RPC_STATUS RpcBindingFromStringBindingA(WINPR_ATTR_UNUSED RPC_CSTR StringBinding, |
61 | | WINPR_ATTR_UNUSED RPC_BINDING_HANDLE* Binding) |
62 | 0 | { |
63 | 0 | WLog_ERR(TAG, "Not implemented"); |
64 | 0 | return 0; |
65 | 0 | } |
66 | | |
67 | | RPC_STATUS RpcBindingFromStringBindingW(WINPR_ATTR_UNUSED RPC_WSTR StringBinding, |
68 | | WINPR_ATTR_UNUSED RPC_BINDING_HANDLE* Binding) |
69 | 0 | { |
70 | 0 | WLog_ERR(TAG, "Not implemented"); |
71 | 0 | return 0; |
72 | 0 | } |
73 | | |
74 | | RPC_STATUS RpcSsGetContextBinding(WINPR_ATTR_UNUSED void* ContextHandle, |
75 | | WINPR_ATTR_UNUSED RPC_BINDING_HANDLE* Binding) |
76 | 0 | { |
77 | 0 | WLog_ERR(TAG, "Not implemented"); |
78 | 0 | return 0; |
79 | 0 | } |
80 | | |
81 | | RPC_STATUS RpcBindingInqObject(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
82 | | WINPR_ATTR_UNUSED UUID* ObjectUuid) |
83 | 0 | { |
84 | 0 | WLog_ERR(TAG, "Not implemented"); |
85 | 0 | return 0; |
86 | 0 | } |
87 | | |
88 | | RPC_STATUS RpcBindingReset(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding) |
89 | 0 | { |
90 | 0 | WLog_ERR(TAG, "Not implemented"); |
91 | 0 | return 0; |
92 | 0 | } |
93 | | |
94 | | RPC_STATUS RpcBindingSetObject(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
95 | | WINPR_ATTR_UNUSED UUID* ObjectUuid) |
96 | 0 | { |
97 | 0 | WLog_ERR(TAG, "Not implemented"); |
98 | 0 | return 0; |
99 | 0 | } |
100 | | |
101 | | RPC_STATUS RpcMgmtInqDefaultProtectLevel(WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
102 | | WINPR_ATTR_UNUSED unsigned long* AuthnLevel) |
103 | 0 | { |
104 | 0 | WLog_ERR(TAG, "Not implemented"); |
105 | 0 | return 0; |
106 | 0 | } |
107 | | |
108 | | RPC_STATUS RpcBindingToStringBindingA(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
109 | | WINPR_ATTR_UNUSED RPC_CSTR* StringBinding) |
110 | 0 | { |
111 | 0 | WLog_ERR(TAG, "Not implemented"); |
112 | 0 | return 0; |
113 | 0 | } |
114 | | |
115 | | RPC_STATUS RpcBindingToStringBindingW(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
116 | | WINPR_ATTR_UNUSED RPC_WSTR* StringBinding) |
117 | 0 | { |
118 | 0 | WLog_ERR(TAG, "Not implemented"); |
119 | 0 | return 0; |
120 | 0 | } |
121 | | |
122 | | RPC_STATUS RpcBindingVectorFree(WINPR_ATTR_UNUSED RPC_BINDING_VECTOR** BindingVector) |
123 | 0 | { |
124 | 0 | WLog_ERR(TAG, "Not implemented"); |
125 | 0 | return 0; |
126 | 0 | } |
127 | | |
128 | | RPC_STATUS RpcStringBindingComposeA(WINPR_ATTR_UNUSED RPC_CSTR ObjUuid, |
129 | | WINPR_ATTR_UNUSED RPC_CSTR Protseq, |
130 | | WINPR_ATTR_UNUSED RPC_CSTR NetworkAddr, |
131 | | WINPR_ATTR_UNUSED RPC_CSTR Endpoint, |
132 | | WINPR_ATTR_UNUSED RPC_CSTR Options, |
133 | | WINPR_ATTR_UNUSED RPC_CSTR* StringBinding) |
134 | 0 | { |
135 | 0 | WLog_ERR(TAG, "Not implemented"); |
136 | 0 | return 0; |
137 | 0 | } |
138 | | |
139 | | RPC_STATUS RpcStringBindingComposeW(WINPR_ATTR_UNUSED RPC_WSTR ObjUuid, |
140 | | WINPR_ATTR_UNUSED RPC_WSTR Protseq, |
141 | | WINPR_ATTR_UNUSED RPC_WSTR NetworkAddr, |
142 | | WINPR_ATTR_UNUSED RPC_WSTR Endpoint, |
143 | | WINPR_ATTR_UNUSED RPC_WSTR Options, |
144 | | WINPR_ATTR_UNUSED RPC_WSTR* StringBinding) |
145 | 0 | { |
146 | 0 | WLog_ERR(TAG, "Not implemented"); |
147 | 0 | return 0; |
148 | 0 | } |
149 | | |
150 | | RPC_STATUS RpcStringBindingParseA(WINPR_ATTR_UNUSED RPC_CSTR StringBinding, |
151 | | WINPR_ATTR_UNUSED RPC_CSTR* ObjUuid, |
152 | | WINPR_ATTR_UNUSED RPC_CSTR* Protseq, |
153 | | WINPR_ATTR_UNUSED RPC_CSTR* NetworkAddr, |
154 | | WINPR_ATTR_UNUSED RPC_CSTR* Endpoint, |
155 | | WINPR_ATTR_UNUSED RPC_CSTR* NetworkOptions) |
156 | 0 | { |
157 | 0 | WLog_ERR(TAG, "Not implemented"); |
158 | 0 | return 0; |
159 | 0 | } |
160 | | |
161 | | RPC_STATUS RpcStringBindingParseW(WINPR_ATTR_UNUSED RPC_WSTR StringBinding, |
162 | | WINPR_ATTR_UNUSED RPC_WSTR* ObjUuid, |
163 | | WINPR_ATTR_UNUSED RPC_WSTR* Protseq, |
164 | | WINPR_ATTR_UNUSED RPC_WSTR* NetworkAddr, |
165 | | WINPR_ATTR_UNUSED RPC_WSTR* Endpoint, |
166 | | WINPR_ATTR_UNUSED RPC_WSTR* NetworkOptions) |
167 | 0 | { |
168 | 0 | WLog_ERR(TAG, "Not implemented"); |
169 | 0 | return 0; |
170 | 0 | } |
171 | | |
172 | | RPC_STATUS RpcStringFreeA(RPC_CSTR* String) |
173 | 0 | { |
174 | 0 | if (String) |
175 | 0 | free(*String); |
176 | |
|
177 | 0 | return RPC_S_OK; |
178 | 0 | } |
179 | | |
180 | | RPC_STATUS RpcStringFreeW(RPC_WSTR* String) |
181 | 0 | { |
182 | 0 | if (String) |
183 | 0 | free(*String); |
184 | |
|
185 | 0 | return RPC_S_OK; |
186 | 0 | } |
187 | | |
188 | | RPC_STATUS RpcIfInqId(WINPR_ATTR_UNUSED RPC_IF_HANDLE RpcIfHandle, |
189 | | WINPR_ATTR_UNUSED RPC_IF_ID* RpcIfId) |
190 | 0 | { |
191 | 0 | WLog_ERR(TAG, "Not implemented"); |
192 | 0 | return 0; |
193 | 0 | } |
194 | | |
195 | | RPC_STATUS RpcNetworkIsProtseqValidA(WINPR_ATTR_UNUSED RPC_CSTR Protseq) |
196 | 0 | { |
197 | 0 | WLog_ERR(TAG, "Not implemented"); |
198 | 0 | return 0; |
199 | 0 | } |
200 | | |
201 | | RPC_STATUS RpcNetworkIsProtseqValidW(WINPR_ATTR_UNUSED RPC_WSTR Protseq) |
202 | 0 | { |
203 | 0 | WLog_ERR(TAG, "Not implemented"); |
204 | 0 | return 0; |
205 | 0 | } |
206 | | |
207 | | RPC_STATUS RpcMgmtInqComTimeout(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
208 | | WINPR_ATTR_UNUSED unsigned int* Timeout) |
209 | 0 | { |
210 | 0 | WLog_ERR(TAG, "Not implemented"); |
211 | 0 | return 0; |
212 | 0 | } |
213 | | |
214 | | RPC_STATUS RpcMgmtSetComTimeout(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
215 | | WINPR_ATTR_UNUSED unsigned int Timeout) |
216 | 0 | { |
217 | 0 | WLog_ERR(TAG, "Not implemented"); |
218 | 0 | return 0; |
219 | 0 | } |
220 | | |
221 | | RPC_STATUS RpcMgmtSetCancelTimeout(WINPR_ATTR_UNUSED long Timeout) |
222 | 0 | { |
223 | 0 | WLog_ERR(TAG, "Not implemented"); |
224 | 0 | return 0; |
225 | 0 | } |
226 | | |
227 | | RPC_STATUS RpcNetworkInqProtseqsA(WINPR_ATTR_UNUSED RPC_PROTSEQ_VECTORA** ProtseqVector) |
228 | 0 | { |
229 | 0 | WLog_ERR(TAG, "Not implemented"); |
230 | 0 | return 0; |
231 | 0 | } |
232 | | |
233 | | RPC_STATUS RpcNetworkInqProtseqsW(WINPR_ATTR_UNUSED RPC_PROTSEQ_VECTORW** ProtseqVector) |
234 | 0 | { |
235 | 0 | WLog_ERR(TAG, "Not implemented"); |
236 | 0 | return 0; |
237 | 0 | } |
238 | | |
239 | | RPC_STATUS RpcObjectInqType(WINPR_ATTR_UNUSED UUID* ObjUuid, WINPR_ATTR_UNUSED UUID* TypeUuid) |
240 | 0 | { |
241 | 0 | WLog_ERR(TAG, "Not implemented"); |
242 | 0 | return 0; |
243 | 0 | } |
244 | | |
245 | | RPC_STATUS RpcObjectSetInqFn(WINPR_ATTR_UNUSED RPC_OBJECT_INQ_FN* InquiryFn) |
246 | 0 | { |
247 | 0 | WLog_ERR(TAG, "Not implemented"); |
248 | 0 | return 0; |
249 | 0 | } |
250 | | |
251 | | RPC_STATUS RpcObjectSetType(WINPR_ATTR_UNUSED UUID* ObjUuid, WINPR_ATTR_UNUSED UUID* TypeUuid) |
252 | 0 | { |
253 | 0 | WLog_ERR(TAG, "Not implemented"); |
254 | 0 | return 0; |
255 | 0 | } |
256 | | |
257 | | RPC_STATUS RpcProtseqVectorFreeA(WINPR_ATTR_UNUSED RPC_PROTSEQ_VECTORA** ProtseqVector) |
258 | 0 | { |
259 | 0 | WLog_ERR(TAG, "Not implemented"); |
260 | 0 | return 0; |
261 | 0 | } |
262 | | |
263 | | RPC_STATUS RpcProtseqVectorFreeW(WINPR_ATTR_UNUSED RPC_PROTSEQ_VECTORW** ProtseqVector) |
264 | 0 | { |
265 | 0 | WLog_ERR(TAG, "Not implemented"); |
266 | 0 | return 0; |
267 | 0 | } |
268 | | |
269 | | RPC_STATUS RpcServerInqBindings(WINPR_ATTR_UNUSED RPC_BINDING_VECTOR** BindingVector) |
270 | 0 | { |
271 | 0 | WLog_ERR(TAG, "Not implemented"); |
272 | 0 | return 0; |
273 | 0 | } |
274 | | |
275 | | RPC_STATUS RpcServerInqIf(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
276 | | WINPR_ATTR_UNUSED UUID* MgrTypeUuid, |
277 | | WINPR_ATTR_UNUSED RPC_MGR_EPV** MgrEpv) |
278 | 0 | { |
279 | 0 | WLog_ERR(TAG, "Not implemented"); |
280 | 0 | return 0; |
281 | 0 | } |
282 | | |
283 | | RPC_STATUS RpcServerListen(WINPR_ATTR_UNUSED unsigned int MinimumCallThreads, |
284 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
285 | | WINPR_ATTR_UNUSED unsigned int DontWait) |
286 | 0 | { |
287 | 0 | WLog_ERR(TAG, "Not implemented"); |
288 | 0 | return 0; |
289 | 0 | } |
290 | | |
291 | | RPC_STATUS RpcServerRegisterIf(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
292 | | WINPR_ATTR_UNUSED UUID* MgrTypeUuid, |
293 | | WINPR_ATTR_UNUSED RPC_MGR_EPV* MgrEpv) |
294 | 0 | { |
295 | 0 | WLog_ERR(TAG, "Not implemented"); |
296 | 0 | return 0; |
297 | 0 | } |
298 | | |
299 | | RPC_STATUS RpcServerRegisterIfEx(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
300 | | WINPR_ATTR_UNUSED UUID* MgrTypeUuid, |
301 | | WINPR_ATTR_UNUSED RPC_MGR_EPV* MgrEpv, |
302 | | WINPR_ATTR_UNUSED unsigned int Flags, |
303 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
304 | | WINPR_ATTR_UNUSED RPC_IF_CALLBACK_FN* IfCallback) |
305 | 0 | { |
306 | 0 | WLog_ERR(TAG, "Not implemented"); |
307 | 0 | return 0; |
308 | 0 | } |
309 | | |
310 | | RPC_STATUS RpcServerRegisterIf2(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
311 | | WINPR_ATTR_UNUSED UUID* MgrTypeUuid, |
312 | | WINPR_ATTR_UNUSED RPC_MGR_EPV* MgrEpv, |
313 | | WINPR_ATTR_UNUSED unsigned int Flags, |
314 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
315 | | WINPR_ATTR_UNUSED unsigned int MaxRpcSize, |
316 | | WINPR_ATTR_UNUSED RPC_IF_CALLBACK_FN* IfCallbackFn) |
317 | 0 | { |
318 | 0 | WLog_ERR(TAG, "Not implemented"); |
319 | 0 | return 0; |
320 | 0 | } |
321 | | |
322 | | RPC_STATUS RpcServerUnregisterIf(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
323 | | WINPR_ATTR_UNUSED UUID* MgrTypeUuid, |
324 | | WINPR_ATTR_UNUSED unsigned int WaitForCallsToComplete) |
325 | 0 | { |
326 | 0 | WLog_ERR(TAG, "Not implemented"); |
327 | 0 | return 0; |
328 | 0 | } |
329 | | |
330 | | RPC_STATUS RpcServerUnregisterIfEx(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
331 | | WINPR_ATTR_UNUSED UUID* MgrTypeUuid, |
332 | | WINPR_ATTR_UNUSED int RundownContextHandles) |
333 | 0 | { |
334 | 0 | WLog_ERR(TAG, "Not implemented"); |
335 | 0 | return 0; |
336 | 0 | } |
337 | | |
338 | | RPC_STATUS RpcServerUseAllProtseqs(WINPR_ATTR_UNUSED unsigned int MaxCalls, |
339 | | WINPR_ATTR_UNUSED void* SecurityDescriptor) |
340 | 0 | { |
341 | 0 | WLog_ERR(TAG, "Not implemented"); |
342 | 0 | return 0; |
343 | 0 | } |
344 | | |
345 | | RPC_STATUS RpcServerUseAllProtseqsEx(WINPR_ATTR_UNUSED unsigned int MaxCalls, |
346 | | WINPR_ATTR_UNUSED void* SecurityDescriptor, |
347 | | WINPR_ATTR_UNUSED PRPC_POLICY Policy) |
348 | 0 | { |
349 | 0 | WLog_ERR(TAG, "Not implemented"); |
350 | 0 | return 0; |
351 | 0 | } |
352 | | |
353 | | RPC_STATUS RpcServerUseAllProtseqsIf(WINPR_ATTR_UNUSED unsigned int MaxCalls, |
354 | | WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
355 | | WINPR_ATTR_UNUSED void* SecurityDescriptor) |
356 | 0 | { |
357 | 0 | WLog_ERR(TAG, "Not implemented"); |
358 | 0 | return 0; |
359 | 0 | } |
360 | | |
361 | | RPC_STATUS RpcServerUseAllProtseqsIfEx(WINPR_ATTR_UNUSED unsigned int MaxCalls, |
362 | | WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
363 | | WINPR_ATTR_UNUSED void* SecurityDescriptor, |
364 | | WINPR_ATTR_UNUSED PRPC_POLICY Policy) |
365 | 0 | { |
366 | 0 | WLog_ERR(TAG, "Not implemented"); |
367 | 0 | return 0; |
368 | 0 | } |
369 | | |
370 | | RPC_STATUS RpcServerUseProtseqA(WINPR_ATTR_UNUSED RPC_CSTR Protseq, |
371 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
372 | | WINPR_ATTR_UNUSED void* SecurityDescriptor) |
373 | 0 | { |
374 | 0 | WLog_ERR(TAG, "Not implemented"); |
375 | 0 | return 0; |
376 | 0 | } |
377 | | |
378 | | RPC_STATUS RpcServerUseProtseqExA(WINPR_ATTR_UNUSED RPC_CSTR Protseq, |
379 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
380 | | WINPR_ATTR_UNUSED void* SecurityDescriptor, |
381 | | WINPR_ATTR_UNUSED PRPC_POLICY Policy) |
382 | 0 | { |
383 | 0 | WLog_ERR(TAG, "Not implemented"); |
384 | 0 | return 0; |
385 | 0 | } |
386 | | |
387 | | RPC_STATUS RpcServerUseProtseqW(WINPR_ATTR_UNUSED RPC_WSTR Protseq, |
388 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
389 | | WINPR_ATTR_UNUSED void* SecurityDescriptor) |
390 | 0 | { |
391 | 0 | WLog_ERR(TAG, "Not implemented"); |
392 | 0 | return 0; |
393 | 0 | } |
394 | | |
395 | | RPC_STATUS RpcServerUseProtseqExW(WINPR_ATTR_UNUSED RPC_WSTR Protseq, |
396 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
397 | | WINPR_ATTR_UNUSED void* SecurityDescriptor, |
398 | | WINPR_ATTR_UNUSED PRPC_POLICY Policy) |
399 | 0 | { |
400 | 0 | WLog_ERR(TAG, "Not implemented"); |
401 | 0 | return 0; |
402 | 0 | } |
403 | | |
404 | | RPC_STATUS RpcServerUseProtseqEpA(WINPR_ATTR_UNUSED RPC_CSTR Protseq, |
405 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
406 | | WINPR_ATTR_UNUSED RPC_CSTR Endpoint, |
407 | | WINPR_ATTR_UNUSED void* SecurityDescriptor) |
408 | 0 | { |
409 | 0 | WLog_ERR(TAG, "Not implemented"); |
410 | 0 | return 0; |
411 | 0 | } |
412 | | |
413 | | RPC_STATUS RpcServerUseProtseqEpExA(WINPR_ATTR_UNUSED RPC_CSTR Protseq, |
414 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
415 | | WINPR_ATTR_UNUSED RPC_CSTR Endpoint, |
416 | | WINPR_ATTR_UNUSED void* SecurityDescriptor, |
417 | | WINPR_ATTR_UNUSED PRPC_POLICY Policy) |
418 | 0 | { |
419 | 0 | WLog_ERR(TAG, "Not implemented"); |
420 | 0 | return 0; |
421 | 0 | } |
422 | | |
423 | | RPC_STATUS RpcServerUseProtseqEpW(WINPR_ATTR_UNUSED RPC_WSTR Protseq, |
424 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
425 | | WINPR_ATTR_UNUSED RPC_WSTR Endpoint, |
426 | | WINPR_ATTR_UNUSED void* SecurityDescriptor) |
427 | 0 | { |
428 | 0 | WLog_ERR(TAG, "Not implemented"); |
429 | 0 | return 0; |
430 | 0 | } |
431 | | |
432 | | RPC_STATUS RpcServerUseProtseqEpExW(WINPR_ATTR_UNUSED RPC_WSTR Protseq, |
433 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
434 | | WINPR_ATTR_UNUSED RPC_WSTR Endpoint, |
435 | | WINPR_ATTR_UNUSED void* SecurityDescriptor, |
436 | | WINPR_ATTR_UNUSED PRPC_POLICY Policy) |
437 | 0 | { |
438 | 0 | WLog_ERR(TAG, "Not implemented"); |
439 | 0 | return 0; |
440 | 0 | } |
441 | | |
442 | | RPC_STATUS RpcServerUseProtseqIfA(WINPR_ATTR_UNUSED RPC_CSTR Protseq, |
443 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
444 | | WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
445 | | WINPR_ATTR_UNUSED void* SecurityDescriptor) |
446 | 0 | { |
447 | 0 | WLog_ERR(TAG, "Not implemented"); |
448 | 0 | return 0; |
449 | 0 | } |
450 | | |
451 | | RPC_STATUS RpcServerUseProtseqIfExA(WINPR_ATTR_UNUSED RPC_CSTR Protseq, |
452 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
453 | | WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
454 | | WINPR_ATTR_UNUSED void* SecurityDescriptor, |
455 | | WINPR_ATTR_UNUSED PRPC_POLICY Policy) |
456 | 0 | { |
457 | 0 | WLog_ERR(TAG, "Not implemented"); |
458 | 0 | return 0; |
459 | 0 | } |
460 | | |
461 | | RPC_STATUS RpcServerUseProtseqIfW(WINPR_ATTR_UNUSED RPC_WSTR Protseq, |
462 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
463 | | WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
464 | | WINPR_ATTR_UNUSED void* SecurityDescriptor) |
465 | 0 | { |
466 | 0 | WLog_ERR(TAG, "Not implemented"); |
467 | 0 | return 0; |
468 | 0 | } |
469 | | |
470 | | RPC_STATUS RpcServerUseProtseqIfExW(WINPR_ATTR_UNUSED RPC_WSTR Protseq, |
471 | | WINPR_ATTR_UNUSED unsigned int MaxCalls, |
472 | | WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
473 | | WINPR_ATTR_UNUSED void* SecurityDescriptor, |
474 | | WINPR_ATTR_UNUSED PRPC_POLICY Policy) |
475 | 0 | { |
476 | 0 | WLog_ERR(TAG, "Not implemented"); |
477 | 0 | return 0; |
478 | 0 | } |
479 | | |
480 | | void RpcServerYield(void) |
481 | 0 | { |
482 | 0 | WLog_ERR(TAG, "Not implemented"); |
483 | 0 | } |
484 | | |
485 | | RPC_STATUS RpcMgmtStatsVectorFree(WINPR_ATTR_UNUSED RPC_STATS_VECTOR** StatsVector) |
486 | 0 | { |
487 | 0 | WLog_ERR(TAG, "Not implemented"); |
488 | 0 | return 0; |
489 | 0 | } |
490 | | |
491 | | RPC_STATUS RpcMgmtInqStats(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
492 | | WINPR_ATTR_UNUSED RPC_STATS_VECTOR** Statistics) |
493 | 0 | { |
494 | 0 | WLog_ERR(TAG, "Not implemented"); |
495 | 0 | return 0; |
496 | 0 | } |
497 | | |
498 | | RPC_STATUS RpcMgmtIsServerListening(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding) |
499 | 0 | { |
500 | 0 | WLog_ERR(TAG, "Not implemented"); |
501 | 0 | return 0; |
502 | 0 | } |
503 | | |
504 | | RPC_STATUS RpcMgmtStopServerListening(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding) |
505 | 0 | { |
506 | 0 | WLog_ERR(TAG, "Not implemented"); |
507 | 0 | return 0; |
508 | 0 | } |
509 | | |
510 | | RPC_STATUS RpcMgmtWaitServerListen(void) |
511 | 0 | { |
512 | 0 | WLog_ERR(TAG, "Not implemented"); |
513 | 0 | return 0; |
514 | 0 | } |
515 | | |
516 | | RPC_STATUS RpcMgmtSetServerStackSize(WINPR_ATTR_UNUSED unsigned long ThreadStackSize) |
517 | 0 | { |
518 | 0 | WLog_ERR(TAG, "Not implemented"); |
519 | 0 | return 0; |
520 | 0 | } |
521 | | |
522 | | void RpcSsDontSerializeContext(void) |
523 | 0 | { |
524 | 0 | WLog_ERR(TAG, "Not implemented"); |
525 | 0 | } |
526 | | |
527 | | RPC_STATUS RpcMgmtEnableIdleCleanup(void) |
528 | 0 | { |
529 | 0 | WLog_ERR(TAG, "Not implemented"); |
530 | 0 | return 0; |
531 | 0 | } |
532 | | |
533 | | RPC_STATUS RpcMgmtInqIfIds(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
534 | | WINPR_ATTR_UNUSED RPC_IF_ID_VECTOR** IfIdVector) |
535 | 0 | { |
536 | 0 | WLog_ERR(TAG, "Not implemented"); |
537 | 0 | return 0; |
538 | 0 | } |
539 | | |
540 | | RPC_STATUS RpcIfIdVectorFree(WINPR_ATTR_UNUSED RPC_IF_ID_VECTOR** IfIdVector) |
541 | 0 | { |
542 | 0 | WLog_ERR(TAG, "Not implemented"); |
543 | 0 | return 0; |
544 | 0 | } |
545 | | |
546 | | RPC_STATUS RpcMgmtInqServerPrincNameA(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
547 | | WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
548 | | WINPR_ATTR_UNUSED RPC_CSTR* ServerPrincName) |
549 | 0 | { |
550 | 0 | WLog_ERR(TAG, "Not implemented"); |
551 | 0 | return 0; |
552 | 0 | } |
553 | | |
554 | | RPC_STATUS RpcMgmtInqServerPrincNameW(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
555 | | WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
556 | | WINPR_ATTR_UNUSED RPC_WSTR* ServerPrincName) |
557 | 0 | { |
558 | 0 | WLog_ERR(TAG, "Not implemented"); |
559 | 0 | return 0; |
560 | 0 | } |
561 | | |
562 | | RPC_STATUS RpcServerInqDefaultPrincNameA(WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
563 | | WINPR_ATTR_UNUSED RPC_CSTR* PrincName) |
564 | 0 | { |
565 | 0 | WLog_ERR(TAG, "Not implemented"); |
566 | 0 | return 0; |
567 | 0 | } |
568 | | |
569 | | RPC_STATUS RpcServerInqDefaultPrincNameW(WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
570 | | WINPR_ATTR_UNUSED RPC_WSTR* PrincName) |
571 | 0 | { |
572 | 0 | WLog_ERR(TAG, "Not implemented"); |
573 | 0 | return 0; |
574 | 0 | } |
575 | | |
576 | | RPC_STATUS RpcEpResolveBinding(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
577 | | WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec) |
578 | 0 | { |
579 | 0 | WLog_ERR(TAG, "Not implemented"); |
580 | 0 | return 0; |
581 | 0 | } |
582 | | |
583 | | RPC_STATUS RpcNsBindingInqEntryNameA(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
584 | | WINPR_ATTR_UNUSED unsigned long EntryNameSyntax, |
585 | | WINPR_ATTR_UNUSED RPC_CSTR* EntryName) |
586 | 0 | { |
587 | 0 | WLog_ERR(TAG, "Not implemented"); |
588 | 0 | return 0; |
589 | 0 | } |
590 | | |
591 | | RPC_STATUS RpcNsBindingInqEntryNameW(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
592 | | WINPR_ATTR_UNUSED unsigned long EntryNameSyntax, |
593 | | WINPR_ATTR_UNUSED RPC_WSTR* EntryName) |
594 | 0 | { |
595 | 0 | WLog_ERR(TAG, "Not implemented"); |
596 | 0 | return 0; |
597 | 0 | } |
598 | | |
599 | | RPC_STATUS RpcImpersonateClient(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE BindingHandle) |
600 | 0 | { |
601 | 0 | WLog_ERR(TAG, "Not implemented"); |
602 | 0 | return 0; |
603 | 0 | } |
604 | | |
605 | | RPC_STATUS RpcRevertToSelfEx(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE BindingHandle) |
606 | 0 | { |
607 | 0 | WLog_ERR(TAG, "Not implemented"); |
608 | 0 | return 0; |
609 | 0 | } |
610 | | |
611 | | RPC_STATUS RpcRevertToSelf(void) |
612 | 0 | { |
613 | 0 | WLog_ERR(TAG, "Not implemented"); |
614 | 0 | return 0; |
615 | 0 | } |
616 | | |
617 | | RPC_STATUS RpcBindingInqAuthClientA(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE ClientBinding, |
618 | | WINPR_ATTR_UNUSED RPC_AUTHZ_HANDLE* Privs, |
619 | | WINPR_ATTR_UNUSED RPC_CSTR* ServerPrincName, |
620 | | WINPR_ATTR_UNUSED unsigned long* AuthnLevel, |
621 | | WINPR_ATTR_UNUSED unsigned long* AuthnSvc, |
622 | | WINPR_ATTR_UNUSED unsigned long* AuthzSvc) |
623 | 0 | { |
624 | 0 | WLog_ERR(TAG, "Not implemented"); |
625 | 0 | return 0; |
626 | 0 | } |
627 | | |
628 | | RPC_STATUS RpcBindingInqAuthClientW(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE ClientBinding, |
629 | | WINPR_ATTR_UNUSED RPC_AUTHZ_HANDLE* Privs, |
630 | | WINPR_ATTR_UNUSED RPC_WSTR* ServerPrincName, |
631 | | WINPR_ATTR_UNUSED unsigned long* AuthnLevel, |
632 | | WINPR_ATTR_UNUSED unsigned long* AuthnSvc, |
633 | | WINPR_ATTR_UNUSED unsigned long* AuthzSvc) |
634 | 0 | { |
635 | 0 | WLog_ERR(TAG, "Not implemented"); |
636 | 0 | return 0; |
637 | 0 | } |
638 | | |
639 | | RPC_STATUS RpcBindingInqAuthClientExA(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE ClientBinding, |
640 | | WINPR_ATTR_UNUSED RPC_AUTHZ_HANDLE* Privs, |
641 | | WINPR_ATTR_UNUSED RPC_CSTR* ServerPrincName, |
642 | | WINPR_ATTR_UNUSED unsigned long* AuthnLevel, |
643 | | WINPR_ATTR_UNUSED unsigned long* AuthnSvc, |
644 | | WINPR_ATTR_UNUSED unsigned long* AuthzSvc, |
645 | | WINPR_ATTR_UNUSED unsigned long Flags) |
646 | 0 | { |
647 | 0 | WLog_ERR(TAG, "Not implemented"); |
648 | 0 | return 0; |
649 | 0 | } |
650 | | |
651 | | RPC_STATUS RpcBindingInqAuthClientExW(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE ClientBinding, |
652 | | WINPR_ATTR_UNUSED RPC_AUTHZ_HANDLE* Privs, |
653 | | WINPR_ATTR_UNUSED RPC_WSTR* ServerPrincName, |
654 | | WINPR_ATTR_UNUSED unsigned long* AuthnLevel, |
655 | | WINPR_ATTR_UNUSED unsigned long* AuthnSvc, |
656 | | WINPR_ATTR_UNUSED unsigned long* AuthzSvc, |
657 | | WINPR_ATTR_UNUSED unsigned long Flags) |
658 | 0 | { |
659 | 0 | WLog_ERR(TAG, "Not implemented"); |
660 | 0 | return 0; |
661 | 0 | } |
662 | | |
663 | | RPC_STATUS RpcBindingInqAuthInfoA(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
664 | | WINPR_ATTR_UNUSED RPC_CSTR* ServerPrincName, |
665 | | WINPR_ATTR_UNUSED unsigned long* AuthnLevel, |
666 | | WINPR_ATTR_UNUSED unsigned long* AuthnSvc, |
667 | | WINPR_ATTR_UNUSED RPC_AUTH_IDENTITY_HANDLE* AuthIdentity, |
668 | | WINPR_ATTR_UNUSED unsigned long* AuthzSvc) |
669 | 0 | { |
670 | 0 | WLog_ERR(TAG, "Not implemented"); |
671 | 0 | return 0; |
672 | 0 | } |
673 | | |
674 | | RPC_STATUS RpcBindingInqAuthInfoW(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
675 | | WINPR_ATTR_UNUSED RPC_WSTR* ServerPrincName, |
676 | | WINPR_ATTR_UNUSED unsigned long* AuthnLevel, |
677 | | WINPR_ATTR_UNUSED unsigned long* AuthnSvc, |
678 | | WINPR_ATTR_UNUSED RPC_AUTH_IDENTITY_HANDLE* AuthIdentity, |
679 | | WINPR_ATTR_UNUSED unsigned long* AuthzSvc) |
680 | 0 | { |
681 | 0 | WLog_ERR(TAG, "Not implemented"); |
682 | 0 | return 0; |
683 | 0 | } |
684 | | |
685 | | RPC_STATUS RpcBindingSetAuthInfoA(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
686 | | WINPR_ATTR_UNUSED RPC_CSTR ServerPrincName, |
687 | | WINPR_ATTR_UNUSED unsigned long AuthnLevel, |
688 | | WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
689 | | WINPR_ATTR_UNUSED RPC_AUTH_IDENTITY_HANDLE AuthIdentity, |
690 | | WINPR_ATTR_UNUSED unsigned long AuthzSvc) |
691 | 0 | { |
692 | 0 | WLog_ERR(TAG, "Not implemented"); |
693 | 0 | return 0; |
694 | 0 | } |
695 | | |
696 | | RPC_STATUS RpcBindingSetAuthInfoExA(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
697 | | WINPR_ATTR_UNUSED RPC_CSTR ServerPrincName, |
698 | | WINPR_ATTR_UNUSED unsigned long AuthnLevel, |
699 | | WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
700 | | WINPR_ATTR_UNUSED RPC_AUTH_IDENTITY_HANDLE AuthIdentity, |
701 | | WINPR_ATTR_UNUSED unsigned long AuthzSvc, |
702 | | WINPR_ATTR_UNUSED RPC_SECURITY_QOS* SecurityQos) |
703 | 0 | { |
704 | 0 | WLog_ERR(TAG, "Not implemented"); |
705 | 0 | return 0; |
706 | 0 | } |
707 | | |
708 | | RPC_STATUS RpcBindingSetAuthInfoW(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
709 | | WINPR_ATTR_UNUSED RPC_WSTR ServerPrincName, |
710 | | WINPR_ATTR_UNUSED unsigned long AuthnLevel, |
711 | | WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
712 | | WINPR_ATTR_UNUSED RPC_AUTH_IDENTITY_HANDLE AuthIdentity, |
713 | | WINPR_ATTR_UNUSED unsigned long AuthzSvc) |
714 | 0 | { |
715 | 0 | WLog_ERR(TAG, "Not implemented"); |
716 | 0 | return 0; |
717 | 0 | } |
718 | | |
719 | | RPC_STATUS RpcBindingSetAuthInfoExW(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
720 | | WINPR_ATTR_UNUSED RPC_WSTR ServerPrincName, |
721 | | WINPR_ATTR_UNUSED unsigned long AuthnLevel, |
722 | | WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
723 | | WINPR_ATTR_UNUSED RPC_AUTH_IDENTITY_HANDLE AuthIdentity, |
724 | | WINPR_ATTR_UNUSED unsigned long AuthzSvc, |
725 | | WINPR_ATTR_UNUSED RPC_SECURITY_QOS* SecurityQOS) |
726 | 0 | { |
727 | 0 | WLog_ERR(TAG, "Not implemented"); |
728 | 0 | return 0; |
729 | 0 | } |
730 | | |
731 | | RPC_STATUS RpcBindingInqAuthInfoExA(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
732 | | WINPR_ATTR_UNUSED RPC_CSTR* ServerPrincName, |
733 | | WINPR_ATTR_UNUSED unsigned long* AuthnLevel, |
734 | | WINPR_ATTR_UNUSED unsigned long* AuthnSvc, |
735 | | WINPR_ATTR_UNUSED RPC_AUTH_IDENTITY_HANDLE* AuthIdentity, |
736 | | WINPR_ATTR_UNUSED unsigned long* AuthzSvc, |
737 | | WINPR_ATTR_UNUSED unsigned long RpcQosVersion, |
738 | | WINPR_ATTR_UNUSED RPC_SECURITY_QOS* SecurityQOS) |
739 | 0 | { |
740 | 0 | WLog_ERR(TAG, "Not implemented"); |
741 | 0 | return 0; |
742 | 0 | } |
743 | | |
744 | | RPC_STATUS RpcBindingInqAuthInfoExW(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
745 | | WINPR_ATTR_UNUSED RPC_WSTR* ServerPrincName, |
746 | | WINPR_ATTR_UNUSED unsigned long* AuthnLevel, |
747 | | WINPR_ATTR_UNUSED unsigned long* AuthnSvc, |
748 | | WINPR_ATTR_UNUSED RPC_AUTH_IDENTITY_HANDLE* AuthIdentity, |
749 | | WINPR_ATTR_UNUSED unsigned long* AuthzSvc, |
750 | | WINPR_ATTR_UNUSED unsigned long RpcQosVersion, |
751 | | WINPR_ATTR_UNUSED RPC_SECURITY_QOS* SecurityQOS) |
752 | 0 | { |
753 | 0 | WLog_ERR(TAG, "Not implemented"); |
754 | 0 | return 0; |
755 | 0 | } |
756 | | |
757 | | RPC_STATUS RpcServerRegisterAuthInfoA(WINPR_ATTR_UNUSED RPC_CSTR ServerPrincName, |
758 | | WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
759 | | WINPR_ATTR_UNUSED RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, |
760 | | WINPR_ATTR_UNUSED void* Arg) |
761 | 0 | { |
762 | 0 | WLog_ERR(TAG, "Not implemented"); |
763 | 0 | return 0; |
764 | 0 | } |
765 | | |
766 | | RPC_STATUS RpcServerRegisterAuthInfoW(WINPR_ATTR_UNUSED RPC_WSTR ServerPrincName, |
767 | | WINPR_ATTR_UNUSED unsigned long AuthnSvc, |
768 | | WINPR_ATTR_UNUSED RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, |
769 | | WINPR_ATTR_UNUSED void* Arg) |
770 | 0 | { |
771 | 0 | WLog_ERR(TAG, "Not implemented"); |
772 | 0 | return 0; |
773 | 0 | } |
774 | | |
775 | | RPC_STATUS RpcBindingServerFromClient(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE ClientBinding, |
776 | | WINPR_ATTR_UNUSED RPC_BINDING_HANDLE* ServerBinding) |
777 | 0 | { |
778 | 0 | WLog_ERR(TAG, "Not implemented"); |
779 | 0 | return 0; |
780 | 0 | } |
781 | | |
782 | | void RpcRaiseException(RPC_STATUS exception) |
783 | 0 | { |
784 | 0 | WLog_ERR(TAG, "RpcRaiseException: 0x%08luX", exception); |
785 | | // NOLINTNEXTLINE(concurrency-mt-unsafe) |
786 | 0 | exit((int)exception); |
787 | 0 | } |
788 | | |
789 | | RPC_STATUS RpcTestCancel(void) |
790 | 0 | { |
791 | 0 | WLog_ERR(TAG, "Not implemented"); |
792 | 0 | return 0; |
793 | 0 | } |
794 | | |
795 | | RPC_STATUS RpcServerTestCancel(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE BindingHandle) |
796 | 0 | { |
797 | 0 | WLog_ERR(TAG, "Not implemented"); |
798 | 0 | return 0; |
799 | 0 | } |
800 | | |
801 | | RPC_STATUS RpcCancelThread(WINPR_ATTR_UNUSED void* Thread) |
802 | 0 | { |
803 | 0 | WLog_ERR(TAG, "Not implemented"); |
804 | 0 | return 0; |
805 | 0 | } |
806 | | |
807 | | RPC_STATUS RpcCancelThreadEx(WINPR_ATTR_UNUSED void* Thread, WINPR_ATTR_UNUSED long Timeout) |
808 | 0 | { |
809 | 0 | WLog_ERR(TAG, "Not implemented"); |
810 | 0 | return 0; |
811 | 0 | } |
812 | | |
813 | | /** |
814 | | * UUID Functions |
815 | | */ |
816 | | |
817 | | static UUID UUID_NIL = { |
818 | | 0x00000000, 0x0000, 0x0000, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } |
819 | | }; |
820 | | |
821 | | RPC_STATUS UuidCreate(UUID* Uuid) |
822 | 0 | { |
823 | 0 | winpr_RAND_pseudo(Uuid, 16); |
824 | 0 | return RPC_S_OK; |
825 | 0 | } |
826 | | |
827 | | RPC_STATUS UuidCreateSequential(UUID* Uuid) |
828 | 0 | { |
829 | 0 | winpr_RAND_pseudo(Uuid, 16); |
830 | 0 | return RPC_S_OK; |
831 | 0 | } |
832 | | |
833 | | RPC_STATUS UuidToStringA(const UUID* Uuid, RPC_CSTR* StringUuid) |
834 | 0 | { |
835 | 0 | *StringUuid = (RPC_CSTR)malloc(36 + 1); |
836 | |
|
837 | 0 | if (!(*StringUuid)) |
838 | 0 | return RPC_S_OUT_OF_MEMORY; |
839 | | |
840 | 0 | if (!Uuid) |
841 | 0 | Uuid = &UUID_NIL; |
842 | | |
843 | | /** |
844 | | * Format is 32 hex digits partitioned in 5 groups: |
845 | | * xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
846 | | */ |
847 | 0 | (void)sprintf_s((char*)*StringUuid, 36 + 1, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", |
848 | 0 | Uuid->Data1, Uuid->Data2, Uuid->Data3, Uuid->Data4[0], Uuid->Data4[1], |
849 | 0 | Uuid->Data4[2], Uuid->Data4[3], Uuid->Data4[4], Uuid->Data4[5], Uuid->Data4[6], |
850 | 0 | Uuid->Data4[7]); |
851 | 0 | return RPC_S_OK; |
852 | 0 | } |
853 | | |
854 | | RPC_STATUS UuidToStringW(WINPR_ATTR_UNUSED const UUID* Uuid, WINPR_ATTR_UNUSED RPC_WSTR* StringUuid) |
855 | 0 | { |
856 | 0 | WLog_ERR(TAG, "Not implemented"); |
857 | 0 | return 0; |
858 | 0 | } |
859 | | |
860 | | RPC_STATUS UuidFromStringA(RPC_CSTR StringUuid, UUID* Uuid) |
861 | 0 | { |
862 | 0 | BYTE bin[36] = { 0 }; |
863 | |
|
864 | 0 | if (!StringUuid) |
865 | 0 | return UuidCreateNil(Uuid); |
866 | | |
867 | 0 | const size_t slen = 2 * sizeof(UUID) + 4; |
868 | 0 | if (strnlen(StringUuid, slen) != slen) |
869 | 0 | return RPC_S_INVALID_STRING_UUID; |
870 | | |
871 | 0 | if ((StringUuid[8] != '-') || (StringUuid[13] != '-') || (StringUuid[18] != '-') || |
872 | 0 | (StringUuid[23] != '-')) |
873 | 0 | { |
874 | 0 | return RPC_S_INVALID_STRING_UUID; |
875 | 0 | } |
876 | | |
877 | 0 | for (size_t index = 0; index < 36; index++) |
878 | 0 | { |
879 | 0 | if ((index == 8) || (index == 13) || (index == 18) || (index == 23)) |
880 | 0 | continue; |
881 | | |
882 | 0 | if ((StringUuid[index] >= '0') && (StringUuid[index] <= '9')) |
883 | 0 | bin[index] = (StringUuid[index] - '0') & 0xFF; |
884 | 0 | else if ((StringUuid[index] >= 'a') && (StringUuid[index] <= 'f')) |
885 | 0 | bin[index] = (StringUuid[index] - 'a' + 10) & 0xFF; |
886 | 0 | else if ((StringUuid[index] >= 'A') && (StringUuid[index] <= 'F')) |
887 | 0 | bin[index] = (StringUuid[index] - 'A' + 10) & 0xFF; |
888 | 0 | else |
889 | 0 | return RPC_S_INVALID_STRING_UUID; |
890 | 0 | } |
891 | | |
892 | 0 | Uuid->Data1 = (UINT32)((bin[0] << 28) | (bin[1] << 24) | (bin[2] << 20) | (bin[3] << 16) | |
893 | 0 | (bin[4] << 12) | (bin[5] << 8) | (bin[6] << 4) | bin[7]); |
894 | 0 | Uuid->Data2 = (UINT16)((bin[9] << 12) | (bin[10] << 8) | (bin[11] << 4) | bin[12]); |
895 | 0 | Uuid->Data3 = (UINT16)((bin[14] << 12) | (bin[15] << 8) | (bin[16] << 4) | bin[17]); |
896 | 0 | Uuid->Data4[0] = (UINT8)((bin[19] << 4) | bin[20]); |
897 | 0 | Uuid->Data4[1] = (UINT8)((bin[21] << 4) | bin[22]); |
898 | 0 | Uuid->Data4[2] = (UINT8)((bin[24] << 4) | bin[25]); |
899 | 0 | Uuid->Data4[3] = (UINT8)((bin[26] << 4) | bin[27]); |
900 | 0 | Uuid->Data4[4] = (UINT8)((bin[28] << 4) | bin[29]); |
901 | 0 | Uuid->Data4[5] = (UINT8)((bin[30] << 4) | bin[31]); |
902 | 0 | Uuid->Data4[6] = (UINT8)((bin[32] << 4) | bin[33]); |
903 | 0 | Uuid->Data4[7] = (UINT8)((bin[34] << 4) | bin[35]); |
904 | 0 | return RPC_S_OK; |
905 | 0 | } |
906 | | |
907 | | RPC_STATUS UuidFromStringW(WINPR_ATTR_UNUSED RPC_WSTR StringUuid, WINPR_ATTR_UNUSED UUID* Uuid) |
908 | 0 | { |
909 | 0 | WLog_ERR(TAG, "Not implemented"); |
910 | 0 | return 0; |
911 | 0 | } |
912 | | |
913 | | signed int UuidCompare(const UUID* Uuid1, const UUID* Uuid2, RPC_STATUS* Status) |
914 | 0 | { |
915 | 0 | *Status = RPC_S_OK; |
916 | |
|
917 | 0 | if (!Uuid1) |
918 | 0 | Uuid1 = &UUID_NIL; |
919 | |
|
920 | 0 | if (!Uuid2) |
921 | 0 | Uuid2 = &UUID_NIL; |
922 | |
|
923 | 0 | if (Uuid1->Data1 != Uuid2->Data1) |
924 | 0 | return (Uuid1->Data1 < Uuid2->Data1) ? -1 : 1; |
925 | | |
926 | 0 | if (Uuid1->Data2 != Uuid2->Data2) |
927 | 0 | return (Uuid1->Data2 < Uuid2->Data2) ? -1 : 1; |
928 | | |
929 | 0 | if (Uuid1->Data3 != Uuid2->Data3) |
930 | 0 | return (Uuid1->Data3 < Uuid2->Data3) ? -1 : 1; |
931 | | |
932 | 0 | for (int index = 0; index < 8; index++) |
933 | 0 | { |
934 | 0 | if (Uuid1->Data4[index] != Uuid2->Data4[index]) |
935 | 0 | return (Uuid1->Data4[index] < Uuid2->Data4[index]) ? -1 : 1; |
936 | 0 | } |
937 | | |
938 | 0 | return 0; |
939 | 0 | } |
940 | | |
941 | | RPC_STATUS UuidCreateNil(UUID* NilUuid) |
942 | 0 | { |
943 | 0 | CopyMemory((void*)NilUuid, (void*)&UUID_NIL, 16); |
944 | 0 | return RPC_S_OK; |
945 | 0 | } |
946 | | |
947 | | int UuidEqual(const UUID* Uuid1, const UUID* Uuid2, RPC_STATUS* Status) |
948 | 0 | { |
949 | 0 | return ((UuidCompare(Uuid1, Uuid2, Status) == 0) ? TRUE : FALSE); |
950 | 0 | } |
951 | | |
952 | | unsigned short UuidHash(WINPR_ATTR_UNUSED const UUID* Uuid, WINPR_ATTR_UNUSED RPC_STATUS* Status) |
953 | 0 | { |
954 | 0 | WLog_ERR(TAG, "Not implemented"); |
955 | 0 | return 0; |
956 | 0 | } |
957 | | |
958 | | int UuidIsNil(const UUID* Uuid, RPC_STATUS* Status) |
959 | 0 | { |
960 | 0 | return UuidEqual(Uuid, &UUID_NIL, Status); |
961 | 0 | } |
962 | | |
963 | | RPC_STATUS RpcEpRegisterNoReplaceA(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
964 | | WINPR_ATTR_UNUSED RPC_BINDING_VECTOR* BindingVector, |
965 | | WINPR_ATTR_UNUSED UUID_VECTOR* UuidVector, |
966 | | WINPR_ATTR_UNUSED RPC_CSTR Annotation) |
967 | 0 | { |
968 | 0 | WLog_ERR(TAG, "Not implemented"); |
969 | 0 | return 0; |
970 | 0 | } |
971 | | |
972 | | RPC_STATUS RpcEpRegisterNoReplaceW(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
973 | | WINPR_ATTR_UNUSED RPC_BINDING_VECTOR* BindingVector, |
974 | | WINPR_ATTR_UNUSED UUID_VECTOR* UuidVector, |
975 | | WINPR_ATTR_UNUSED RPC_WSTR Annotation) |
976 | 0 | { |
977 | 0 | WLog_ERR(TAG, "Not implemented"); |
978 | 0 | return 0; |
979 | 0 | } |
980 | | |
981 | | RPC_STATUS RpcEpRegisterA(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
982 | | WINPR_ATTR_UNUSED RPC_BINDING_VECTOR* BindingVector, |
983 | | WINPR_ATTR_UNUSED UUID_VECTOR* UuidVector, |
984 | | WINPR_ATTR_UNUSED RPC_CSTR Annotation) |
985 | 0 | { |
986 | 0 | WLog_ERR(TAG, "Not implemented"); |
987 | 0 | return 0; |
988 | 0 | } |
989 | | |
990 | | RPC_STATUS RpcEpRegisterW(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
991 | | WINPR_ATTR_UNUSED RPC_BINDING_VECTOR* BindingVector, |
992 | | WINPR_ATTR_UNUSED UUID_VECTOR* UuidVector, |
993 | | WINPR_ATTR_UNUSED RPC_WSTR Annotation) |
994 | 0 | { |
995 | 0 | WLog_ERR(TAG, "Not implemented"); |
996 | 0 | return 0; |
997 | 0 | } |
998 | | |
999 | | RPC_STATUS RpcEpUnregister(WINPR_ATTR_UNUSED RPC_IF_HANDLE IfSpec, |
1000 | | WINPR_ATTR_UNUSED RPC_BINDING_VECTOR* BindingVector, |
1001 | | WINPR_ATTR_UNUSED UUID_VECTOR* UuidVector) |
1002 | 0 | { |
1003 | 0 | WLog_ERR(TAG, "Not implemented"); |
1004 | 0 | return 0; |
1005 | 0 | } |
1006 | | |
1007 | | RPC_STATUS DceErrorInqTextA(WINPR_ATTR_UNUSED RPC_STATUS RpcStatus, |
1008 | | WINPR_ATTR_UNUSED RPC_CSTR ErrorText) |
1009 | 0 | { |
1010 | 0 | WLog_ERR(TAG, "Not implemented"); |
1011 | 0 | return 0; |
1012 | 0 | } |
1013 | | |
1014 | | RPC_STATUS DceErrorInqTextW(WINPR_ATTR_UNUSED RPC_STATUS RpcStatus, |
1015 | | WINPR_ATTR_UNUSED RPC_WSTR ErrorText) |
1016 | 0 | { |
1017 | 0 | WLog_ERR(TAG, "Not implemented"); |
1018 | 0 | return 0; |
1019 | 0 | } |
1020 | | |
1021 | | RPC_STATUS RpcMgmtEpEltInqBegin(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE EpBinding, |
1022 | | WINPR_ATTR_UNUSED unsigned long InquiryType, |
1023 | | WINPR_ATTR_UNUSED RPC_IF_ID* IfId, |
1024 | | WINPR_ATTR_UNUSED unsigned long VersOption, |
1025 | | WINPR_ATTR_UNUSED UUID* ObjectUuid, |
1026 | | WINPR_ATTR_UNUSED RPC_EP_INQ_HANDLE* InquiryContext) |
1027 | 0 | { |
1028 | 0 | WLog_ERR(TAG, "Not implemented"); |
1029 | 0 | return 0; |
1030 | 0 | } |
1031 | | |
1032 | | RPC_STATUS RpcMgmtEpEltInqDone(WINPR_ATTR_UNUSED RPC_EP_INQ_HANDLE* InquiryContext) |
1033 | 0 | { |
1034 | 0 | WLog_ERR(TAG, "Not implemented"); |
1035 | 0 | return 0; |
1036 | 0 | } |
1037 | | |
1038 | | RPC_STATUS RpcMgmtEpEltInqNextA(WINPR_ATTR_UNUSED RPC_EP_INQ_HANDLE InquiryContext, |
1039 | | WINPR_ATTR_UNUSED RPC_IF_ID* IfId, |
1040 | | WINPR_ATTR_UNUSED RPC_BINDING_HANDLE* Binding, |
1041 | | WINPR_ATTR_UNUSED UUID* ObjectUuid, |
1042 | | WINPR_ATTR_UNUSED RPC_CSTR* Annotation) |
1043 | 0 | { |
1044 | 0 | WLog_ERR(TAG, "Not implemented"); |
1045 | 0 | return 0; |
1046 | 0 | } |
1047 | | |
1048 | | RPC_STATUS RpcMgmtEpEltInqNextW(WINPR_ATTR_UNUSED RPC_EP_INQ_HANDLE InquiryContext, |
1049 | | WINPR_ATTR_UNUSED RPC_IF_ID* IfId, |
1050 | | WINPR_ATTR_UNUSED RPC_BINDING_HANDLE* Binding, |
1051 | | WINPR_ATTR_UNUSED UUID* ObjectUuid, |
1052 | | WINPR_ATTR_UNUSED RPC_WSTR* Annotation) |
1053 | 0 | { |
1054 | 0 | WLog_ERR(TAG, "Not implemented"); |
1055 | 0 | return 0; |
1056 | 0 | } |
1057 | | |
1058 | | RPC_STATUS RpcMgmtEpUnregister(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE EpBinding, |
1059 | | WINPR_ATTR_UNUSED RPC_IF_ID* IfId, |
1060 | | WINPR_ATTR_UNUSED RPC_BINDING_HANDLE Binding, |
1061 | | WINPR_ATTR_UNUSED UUID* ObjectUuid) |
1062 | 0 | { |
1063 | 0 | WLog_ERR(TAG, "Not implemented"); |
1064 | 0 | return 0; |
1065 | 0 | } |
1066 | | |
1067 | | RPC_STATUS RpcMgmtSetAuthorizationFn(WINPR_ATTR_UNUSED RPC_MGMT_AUTHORIZATION_FN AuthorizationFn) |
1068 | 0 | { |
1069 | 0 | WLog_ERR(TAG, "Not implemented"); |
1070 | 0 | return 0; |
1071 | 0 | } |
1072 | | |
1073 | | RPC_STATUS RpcServerInqBindingHandle(WINPR_ATTR_UNUSED RPC_BINDING_HANDLE* Binding) |
1074 | 0 | { |
1075 | 0 | WLog_ERR(TAG, "Not implemented"); |
1076 | 0 | return 0; |
1077 | 0 | } |
1078 | | |
1079 | | #endif |