20 #include <winpr/config.h>
22 #include <winpr/crt.h>
23 #include <winpr/rpc.h>
24 #include <winpr/crypto.h>
26 #if !defined(_WIN32) || defined(_UWP)
29 #define TAG WINPR_TAG("rpc")
31 RPC_STATUS RpcBindingCopy(RPC_BINDING_HANDLE SourceBinding, RPC_BINDING_HANDLE* DestinationBinding)
33 WLog_ERR(TAG,
"Not implemented");
37 RPC_STATUS RpcBindingFree(RPC_BINDING_HANDLE* Binding)
39 WLog_ERR(TAG,
"Not implemented");
43 RPC_STATUS RpcBindingSetOption(RPC_BINDING_HANDLE hBinding,
unsigned long option,
44 ULONG_PTR optionValue)
46 WLog_ERR(TAG,
"Not implemented");
50 RPC_STATUS RpcBindingInqOption(RPC_BINDING_HANDLE hBinding,
unsigned long option,
51 ULONG_PTR* pOptionValue)
53 WLog_ERR(TAG,
"Not implemented");
57 RPC_STATUS RpcBindingFromStringBindingA(RPC_CSTR StringBinding, RPC_BINDING_HANDLE* Binding)
59 WLog_ERR(TAG,
"Not implemented");
63 RPC_STATUS RpcBindingFromStringBindingW(RPC_WSTR StringBinding, RPC_BINDING_HANDLE* Binding)
65 WLog_ERR(TAG,
"Not implemented");
69 RPC_STATUS RpcSsGetContextBinding(
void* ContextHandle, RPC_BINDING_HANDLE* Binding)
71 WLog_ERR(TAG,
"Not implemented");
75 RPC_STATUS RpcBindingInqObject(RPC_BINDING_HANDLE Binding, UUID* ObjectUuid)
77 WLog_ERR(TAG,
"Not implemented");
81 RPC_STATUS RpcBindingReset(RPC_BINDING_HANDLE Binding)
83 WLog_ERR(TAG,
"Not implemented");
87 RPC_STATUS RpcBindingSetObject(RPC_BINDING_HANDLE Binding, UUID* ObjectUuid)
89 WLog_ERR(TAG,
"Not implemented");
93 RPC_STATUS RpcMgmtInqDefaultProtectLevel(
unsigned long AuthnSvc,
unsigned long* AuthnLevel)
95 WLog_ERR(TAG,
"Not implemented");
99 RPC_STATUS RpcBindingToStringBindingA(RPC_BINDING_HANDLE Binding, RPC_CSTR* StringBinding)
101 WLog_ERR(TAG,
"Not implemented");
105 RPC_STATUS RpcBindingToStringBindingW(RPC_BINDING_HANDLE Binding, RPC_WSTR* StringBinding)
107 WLog_ERR(TAG,
"Not implemented");
113 WLog_ERR(TAG,
"Not implemented");
117 RPC_STATUS RpcStringBindingComposeA(RPC_CSTR ObjUuid, RPC_CSTR Protseq, RPC_CSTR NetworkAddr,
118 RPC_CSTR Endpoint, RPC_CSTR Options, RPC_CSTR* StringBinding)
120 WLog_ERR(TAG,
"Not implemented");
124 RPC_STATUS RpcStringBindingComposeW(RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr,
125 RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR* StringBinding)
127 WLog_ERR(TAG,
"Not implemented");
131 RPC_STATUS RpcStringBindingParseA(RPC_CSTR StringBinding, RPC_CSTR* ObjUuid, RPC_CSTR* Protseq,
132 RPC_CSTR* NetworkAddr, RPC_CSTR* Endpoint,
133 RPC_CSTR* NetworkOptions)
135 WLog_ERR(TAG,
"Not implemented");
139 RPC_STATUS RpcStringBindingParseW(RPC_WSTR StringBinding, RPC_WSTR* ObjUuid, RPC_WSTR* Protseq,
140 RPC_WSTR* NetworkAddr, RPC_WSTR* Endpoint,
141 RPC_WSTR* NetworkOptions)
143 WLog_ERR(TAG,
"Not implemented");
147 RPC_STATUS RpcStringFreeA(RPC_CSTR* String)
155 RPC_STATUS RpcStringFreeW(RPC_WSTR* String)
163 RPC_STATUS RpcIfInqId(RPC_IF_HANDLE RpcIfHandle,
RPC_IF_ID* RpcIfId)
165 WLog_ERR(TAG,
"Not implemented");
169 RPC_STATUS RpcNetworkIsProtseqValidA(RPC_CSTR Protseq)
171 WLog_ERR(TAG,
"Not implemented");
175 RPC_STATUS RpcNetworkIsProtseqValidW(RPC_WSTR Protseq)
177 WLog_ERR(TAG,
"Not implemented");
181 RPC_STATUS RpcMgmtInqComTimeout(RPC_BINDING_HANDLE Binding,
unsigned int* Timeout)
183 WLog_ERR(TAG,
"Not implemented");
187 RPC_STATUS RpcMgmtSetComTimeout(RPC_BINDING_HANDLE Binding,
unsigned int Timeout)
189 WLog_ERR(TAG,
"Not implemented");
193 RPC_STATUS RpcMgmtSetCancelTimeout(
long Timeout)
195 WLog_ERR(TAG,
"Not implemented");
201 WLog_ERR(TAG,
"Not implemented");
207 WLog_ERR(TAG,
"Not implemented");
211 RPC_STATUS RpcObjectInqType(UUID* ObjUuid, UUID* TypeUuid)
213 WLog_ERR(TAG,
"Not implemented");
217 RPC_STATUS RpcObjectSetInqFn(RPC_OBJECT_INQ_FN* InquiryFn)
219 WLog_ERR(TAG,
"Not implemented");
223 RPC_STATUS RpcObjectSetType(UUID* ObjUuid, UUID* TypeUuid)
225 WLog_ERR(TAG,
"Not implemented");
231 WLog_ERR(TAG,
"Not implemented");
237 WLog_ERR(TAG,
"Not implemented");
243 WLog_ERR(TAG,
"Not implemented");
247 RPC_STATUS RpcServerInqIf(RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV** MgrEpv)
249 WLog_ERR(TAG,
"Not implemented");
253 RPC_STATUS RpcServerListen(
unsigned int MinimumCallThreads,
unsigned int MaxCalls,
254 unsigned int DontWait)
256 WLog_ERR(TAG,
"Not implemented");
260 RPC_STATUS RpcServerRegisterIf(RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv)
262 WLog_ERR(TAG,
"Not implemented");
266 RPC_STATUS RpcServerRegisterIfEx(RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
267 unsigned int Flags,
unsigned int MaxCalls,
268 RPC_IF_CALLBACK_FN* IfCallback)
270 WLog_ERR(TAG,
"Not implemented");
274 RPC_STATUS RpcServerRegisterIf2(RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid, RPC_MGR_EPV* MgrEpv,
275 unsigned int Flags,
unsigned int MaxCalls,
unsigned int MaxRpcSize,
276 RPC_IF_CALLBACK_FN* IfCallbackFn)
278 WLog_ERR(TAG,
"Not implemented");
282 RPC_STATUS RpcServerUnregisterIf(RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid,
283 unsigned int WaitForCallsToComplete)
285 WLog_ERR(TAG,
"Not implemented");
289 RPC_STATUS RpcServerUnregisterIfEx(RPC_IF_HANDLE IfSpec, UUID* MgrTypeUuid,
290 int RundownContextHandles)
292 WLog_ERR(TAG,
"Not implemented");
296 RPC_STATUS RpcServerUseAllProtseqs(
unsigned int MaxCalls,
void* SecurityDescriptor)
298 WLog_ERR(TAG,
"Not implemented");
302 RPC_STATUS RpcServerUseAllProtseqsEx(
unsigned int MaxCalls,
void* SecurityDescriptor,
305 WLog_ERR(TAG,
"Not implemented");
309 RPC_STATUS RpcServerUseAllProtseqsIf(
unsigned int MaxCalls, RPC_IF_HANDLE IfSpec,
310 void* SecurityDescriptor)
312 WLog_ERR(TAG,
"Not implemented");
316 RPC_STATUS RpcServerUseAllProtseqsIfEx(
unsigned int MaxCalls, RPC_IF_HANDLE IfSpec,
319 WLog_ERR(TAG,
"Not implemented");
323 RPC_STATUS RpcServerUseProtseqA(RPC_CSTR Protseq,
unsigned int MaxCalls,
void* SecurityDescriptor)
325 WLog_ERR(TAG,
"Not implemented");
329 RPC_STATUS RpcServerUseProtseqExA(RPC_CSTR Protseq,
unsigned int MaxCalls,
void* SecurityDescriptor,
332 WLog_ERR(TAG,
"Not implemented");
336 RPC_STATUS RpcServerUseProtseqW(RPC_WSTR Protseq,
unsigned int MaxCalls,
void* SecurityDescriptor)
338 WLog_ERR(TAG,
"Not implemented");
342 RPC_STATUS RpcServerUseProtseqExW(RPC_WSTR Protseq,
unsigned int MaxCalls,
void* SecurityDescriptor,
345 WLog_ERR(TAG,
"Not implemented");
349 RPC_STATUS RpcServerUseProtseqEpA(RPC_CSTR Protseq,
unsigned int MaxCalls, RPC_CSTR Endpoint,
350 void* SecurityDescriptor)
352 WLog_ERR(TAG,
"Not implemented");
356 RPC_STATUS RpcServerUseProtseqEpExA(RPC_CSTR Protseq,
unsigned int MaxCalls, RPC_CSTR Endpoint,
359 WLog_ERR(TAG,
"Not implemented");
363 RPC_STATUS RpcServerUseProtseqEpW(RPC_WSTR Protseq,
unsigned int MaxCalls, RPC_WSTR Endpoint,
364 void* SecurityDescriptor)
366 WLog_ERR(TAG,
"Not implemented");
370 RPC_STATUS RpcServerUseProtseqEpExW(RPC_WSTR Protseq,
unsigned int MaxCalls, RPC_WSTR Endpoint,
373 WLog_ERR(TAG,
"Not implemented");
377 RPC_STATUS RpcServerUseProtseqIfA(RPC_CSTR Protseq,
unsigned int MaxCalls, RPC_IF_HANDLE IfSpec,
378 void* SecurityDescriptor)
380 WLog_ERR(TAG,
"Not implemented");
384 RPC_STATUS RpcServerUseProtseqIfExA(RPC_CSTR Protseq,
unsigned int MaxCalls, RPC_IF_HANDLE IfSpec,
387 WLog_ERR(TAG,
"Not implemented");
391 RPC_STATUS RpcServerUseProtseqIfW(RPC_WSTR Protseq,
unsigned int MaxCalls, RPC_IF_HANDLE IfSpec,
392 void* SecurityDescriptor)
394 WLog_ERR(TAG,
"Not implemented");
398 RPC_STATUS RpcServerUseProtseqIfExW(RPC_WSTR Protseq,
unsigned int MaxCalls, RPC_IF_HANDLE IfSpec,
401 WLog_ERR(TAG,
"Not implemented");
405 void RpcServerYield(
void)
407 WLog_ERR(TAG,
"Not implemented");
412 WLog_ERR(TAG,
"Not implemented");
416 RPC_STATUS RpcMgmtInqStats(RPC_BINDING_HANDLE Binding,
RPC_STATS_VECTOR** Statistics)
418 WLog_ERR(TAG,
"Not implemented");
422 RPC_STATUS RpcMgmtIsServerListening(RPC_BINDING_HANDLE Binding)
424 WLog_ERR(TAG,
"Not implemented");
428 RPC_STATUS RpcMgmtStopServerListening(RPC_BINDING_HANDLE Binding)
430 WLog_ERR(TAG,
"Not implemented");
434 RPC_STATUS RpcMgmtWaitServerListen(
void)
436 WLog_ERR(TAG,
"Not implemented");
440 RPC_STATUS RpcMgmtSetServerStackSize(
unsigned long ThreadStackSize)
442 WLog_ERR(TAG,
"Not implemented");
446 void RpcSsDontSerializeContext(
void)
448 WLog_ERR(TAG,
"Not implemented");
451 RPC_STATUS RpcMgmtEnableIdleCleanup(
void)
453 WLog_ERR(TAG,
"Not implemented");
457 RPC_STATUS RpcMgmtInqIfIds(RPC_BINDING_HANDLE Binding,
RPC_IF_ID_VECTOR** IfIdVector)
459 WLog_ERR(TAG,
"Not implemented");
465 WLog_ERR(TAG,
"Not implemented");
469 RPC_STATUS RpcMgmtInqServerPrincNameA(RPC_BINDING_HANDLE Binding,
unsigned long AuthnSvc,
470 RPC_CSTR* ServerPrincName)
472 WLog_ERR(TAG,
"Not implemented");
476 RPC_STATUS RpcMgmtInqServerPrincNameW(RPC_BINDING_HANDLE Binding,
unsigned long AuthnSvc,
477 RPC_WSTR* ServerPrincName)
479 WLog_ERR(TAG,
"Not implemented");
483 RPC_STATUS RpcServerInqDefaultPrincNameA(
unsigned long AuthnSvc, RPC_CSTR* PrincName)
485 WLog_ERR(TAG,
"Not implemented");
489 RPC_STATUS RpcServerInqDefaultPrincNameW(
unsigned long AuthnSvc, RPC_WSTR* PrincName)
491 WLog_ERR(TAG,
"Not implemented");
495 RPC_STATUS RpcEpResolveBinding(RPC_BINDING_HANDLE Binding, RPC_IF_HANDLE IfSpec)
497 WLog_ERR(TAG,
"Not implemented");
501 RPC_STATUS RpcNsBindingInqEntryNameA(RPC_BINDING_HANDLE Binding,
unsigned long EntryNameSyntax,
504 WLog_ERR(TAG,
"Not implemented");
508 RPC_STATUS RpcNsBindingInqEntryNameW(RPC_BINDING_HANDLE Binding,
unsigned long EntryNameSyntax,
511 WLog_ERR(TAG,
"Not implemented");
515 RPC_STATUS RpcImpersonateClient(RPC_BINDING_HANDLE BindingHandle)
517 WLog_ERR(TAG,
"Not implemented");
521 RPC_STATUS RpcRevertToSelfEx(RPC_BINDING_HANDLE BindingHandle)
523 WLog_ERR(TAG,
"Not implemented");
527 RPC_STATUS RpcRevertToSelf(
void)
529 WLog_ERR(TAG,
"Not implemented");
533 RPC_STATUS RpcBindingInqAuthClientA(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE* Privs,
534 RPC_CSTR* ServerPrincName,
unsigned long* AuthnLevel,
535 unsigned long* AuthnSvc,
unsigned long* AuthzSvc)
537 WLog_ERR(TAG,
"Not implemented");
541 RPC_STATUS RpcBindingInqAuthClientW(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE* Privs,
542 RPC_WSTR* ServerPrincName,
unsigned long* AuthnLevel,
543 unsigned long* AuthnSvc,
unsigned long* AuthzSvc)
545 WLog_ERR(TAG,
"Not implemented");
549 RPC_STATUS RpcBindingInqAuthClientExA(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE* Privs,
550 RPC_CSTR* ServerPrincName,
unsigned long* AuthnLevel,
551 unsigned long* AuthnSvc,
unsigned long* AuthzSvc,
554 WLog_ERR(TAG,
"Not implemented");
558 RPC_STATUS RpcBindingInqAuthClientExW(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE* Privs,
559 RPC_WSTR* ServerPrincName,
unsigned long* AuthnLevel,
560 unsigned long* AuthnSvc,
unsigned long* AuthzSvc,
563 WLog_ERR(TAG,
"Not implemented");
567 RPC_STATUS RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE Binding, RPC_CSTR* ServerPrincName,
568 unsigned long* AuthnLevel,
unsigned long* AuthnSvc,
569 RPC_AUTH_IDENTITY_HANDLE* AuthIdentity,
unsigned long* AuthzSvc)
571 WLog_ERR(TAG,
"Not implemented");
575 RPC_STATUS RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE Binding, RPC_WSTR* ServerPrincName,
576 unsigned long* AuthnLevel,
unsigned long* AuthnSvc,
577 RPC_AUTH_IDENTITY_HANDLE* AuthIdentity,
unsigned long* AuthzSvc)
579 WLog_ERR(TAG,
"Not implemented");
583 RPC_STATUS RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName,
584 unsigned long AuthnLevel,
unsigned long AuthnSvc,
585 RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc)
587 WLog_ERR(TAG,
"Not implemented");
591 RPC_STATUS RpcBindingSetAuthInfoExA(RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName,
592 unsigned long AuthnLevel,
unsigned long AuthnSvc,
593 RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc,
596 WLog_ERR(TAG,
"Not implemented");
600 RPC_STATUS RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName,
601 unsigned long AuthnLevel,
unsigned long AuthnSvc,
602 RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc)
604 WLog_ERR(TAG,
"Not implemented");
608 RPC_STATUS RpcBindingSetAuthInfoExW(RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName,
609 unsigned long AuthnLevel,
unsigned long AuthnSvc,
610 RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc,
613 WLog_ERR(TAG,
"Not implemented");
617 RPC_STATUS RpcBindingInqAuthInfoExA(RPC_BINDING_HANDLE Binding, RPC_CSTR* ServerPrincName,
618 unsigned long* AuthnLevel,
unsigned long* AuthnSvc,
619 RPC_AUTH_IDENTITY_HANDLE* AuthIdentity,
unsigned long* AuthzSvc,
622 WLog_ERR(TAG,
"Not implemented");
626 RPC_STATUS RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE Binding, RPC_WSTR* ServerPrincName,
627 unsigned long* AuthnLevel,
unsigned long* AuthnSvc,
628 RPC_AUTH_IDENTITY_HANDLE* AuthIdentity,
unsigned long* AuthzSvc,
631 WLog_ERR(TAG,
"Not implemented");
635 RPC_STATUS RpcServerRegisterAuthInfoA(RPC_CSTR ServerPrincName,
unsigned long AuthnSvc,
636 RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
void* Arg)
638 WLog_ERR(TAG,
"Not implemented");
642 RPC_STATUS RpcServerRegisterAuthInfoW(RPC_WSTR ServerPrincName,
unsigned long AuthnSvc,
643 RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
void* Arg)
645 WLog_ERR(TAG,
"Not implemented");
649 RPC_STATUS RpcBindingServerFromClient(RPC_BINDING_HANDLE ClientBinding,
650 RPC_BINDING_HANDLE* ServerBinding)
652 WLog_ERR(TAG,
"Not implemented");
656 void RpcRaiseException(RPC_STATUS exception)
658 WLog_ERR(TAG,
"RpcRaiseException: 0x%08luX", exception);
659 exit((
int)exception);
662 RPC_STATUS RpcTestCancel(
void)
664 WLog_ERR(TAG,
"Not implemented");
668 RPC_STATUS RpcServerTestCancel(RPC_BINDING_HANDLE BindingHandle)
670 WLog_ERR(TAG,
"Not implemented");
674 RPC_STATUS RpcCancelThread(
void* Thread)
676 WLog_ERR(TAG,
"Not implemented");
680 RPC_STATUS RpcCancelThreadEx(
void* Thread,
long Timeout)
682 WLog_ERR(TAG,
"Not implemented");
690 static UUID UUID_NIL = {
691 0x00000000, 0x0000, 0x0000, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
694 RPC_STATUS UuidCreate(UUID* Uuid)
696 winpr_RAND_pseudo(Uuid, 16);
700 RPC_STATUS UuidCreateSequential(UUID* Uuid)
702 winpr_RAND_pseudo(Uuid, 16);
706 RPC_STATUS UuidToStringA(
const UUID* Uuid, RPC_CSTR* StringUuid)
708 *StringUuid = (RPC_CSTR)malloc(36 + 1);
711 return RPC_S_OUT_OF_MEMORY;
720 (void)sprintf_s((
char*)*StringUuid, 36 + 1,
"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
721 Uuid->Data1, Uuid->Data2, Uuid->Data3, Uuid->Data4[0], Uuid->Data4[1],
722 Uuid->Data4[2], Uuid->Data4[3], Uuid->Data4[4], Uuid->Data4[5], Uuid->Data4[6],
727 RPC_STATUS UuidToStringW(
const UUID* Uuid, RPC_WSTR* StringUuid)
729 WLog_ERR(TAG,
"Not implemented");
733 RPC_STATUS UuidFromStringA(RPC_CSTR StringUuid, UUID* Uuid)
738 return UuidCreateNil(Uuid);
740 if (strlen((
char*)StringUuid) != 36)
741 return RPC_S_INVALID_STRING_UUID;
743 if ((StringUuid[8] !=
'-') || (StringUuid[13] !=
'-') || (StringUuid[18] !=
'-') ||
744 (StringUuid[23] !=
'-'))
746 return RPC_S_INVALID_STRING_UUID;
749 for (
int index = 0; index < 36; index++)
751 if ((index == 8) || (index == 13) || (index == 18) || (index == 23))
754 if ((StringUuid[index] >=
'0') && (StringUuid[index] <=
'9'))
755 bin[index] = StringUuid[index] -
'0';
756 else if ((StringUuid[index] >=
'a') && (StringUuid[index] <=
'f'))
757 bin[index] = StringUuid[index] -
'a' + 10;
758 else if ((StringUuid[index] >=
'A') && (StringUuid[index] <=
'F'))
759 bin[index] = StringUuid[index] -
'A' + 10;
761 return RPC_S_INVALID_STRING_UUID;
764 Uuid->Data1 = (UINT32)((bin[0] << 28) | (bin[1] << 24) | (bin[2] << 20) | (bin[3] << 16) |
765 (bin[4] << 12) | (bin[5] << 8) | (bin[6] << 4) | bin[7]);
766 Uuid->Data2 = (UINT16)((bin[9] << 12) | (bin[10] << 8) | (bin[11] << 4) | bin[12]);
767 Uuid->Data3 = (UINT16)((bin[14] << 12) | (bin[15] << 8) | (bin[16] << 4) | bin[17]);
768 Uuid->Data4[0] = (UINT8)((bin[19] << 4) | bin[20]);
769 Uuid->Data4[1] = (UINT8)((bin[21] << 4) | bin[22]);
770 Uuid->Data4[2] = (UINT8)((bin[24] << 4) | bin[25]);
771 Uuid->Data4[3] = (UINT8)((bin[26] << 4) | bin[27]);
772 Uuid->Data4[4] = (UINT8)((bin[28] << 4) | bin[29]);
773 Uuid->Data4[5] = (UINT8)((bin[30] << 4) | bin[31]);
774 Uuid->Data4[6] = (UINT8)((bin[32] << 4) | bin[33]);
775 Uuid->Data4[7] = (UINT8)((bin[34] << 4) | bin[35]);
779 RPC_STATUS UuidFromStringW(RPC_WSTR StringUuid, UUID* Uuid)
781 WLog_ERR(TAG,
"Not implemented");
785 signed int UuidCompare(
const UUID* Uuid1,
const UUID* Uuid2, RPC_STATUS* Status)
795 if (Uuid1->Data1 != Uuid2->Data1)
796 return (Uuid1->Data1 < Uuid2->Data1) ? -1 : 1;
798 if (Uuid1->Data2 != Uuid2->Data2)
799 return (Uuid1->Data2 < Uuid2->Data2) ? -1 : 1;
801 if (Uuid1->Data3 != Uuid2->Data3)
802 return (Uuid1->Data3 < Uuid2->Data3) ? -1 : 1;
804 for (
int index = 0; index < 8; index++)
806 if (Uuid1->Data4[index] != Uuid2->Data4[index])
807 return (Uuid1->Data4[index] < Uuid2->Data4[index]) ? -1 : 1;
813 RPC_STATUS UuidCreateNil(UUID* NilUuid)
815 CopyMemory((
void*)NilUuid, (
void*)&UUID_NIL, 16);
819 int UuidEqual(
const UUID* Uuid1,
const UUID* Uuid2, RPC_STATUS* Status)
821 return ((UuidCompare(Uuid1, Uuid2, Status) == 0) ? TRUE : FALSE);
824 unsigned short UuidHash(
const UUID* Uuid, RPC_STATUS* Status)
826 WLog_ERR(TAG,
"Not implemented");
830 int UuidIsNil(
const UUID* Uuid, RPC_STATUS* Status)
832 return UuidEqual(Uuid, &UUID_NIL, Status);
835 RPC_STATUS RpcEpRegisterNoReplaceA(RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR* BindingVector,
838 WLog_ERR(TAG,
"Not implemented");
842 RPC_STATUS RpcEpRegisterNoReplaceW(RPC_IF_HANDLE IfSpec,
RPC_BINDING_VECTOR* BindingVector,
845 WLog_ERR(TAG,
"Not implemented");
852 WLog_ERR(TAG,
"Not implemented");
859 WLog_ERR(TAG,
"Not implemented");
866 WLog_ERR(TAG,
"Not implemented");
870 RPC_STATUS DceErrorInqTextA(RPC_STATUS RpcStatus, RPC_CSTR ErrorText)
872 WLog_ERR(TAG,
"Not implemented");
876 RPC_STATUS DceErrorInqTextW(RPC_STATUS RpcStatus, RPC_WSTR ErrorText)
878 WLog_ERR(TAG,
"Not implemented");
882 RPC_STATUS RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE EpBinding,
unsigned long InquiryType,
883 RPC_IF_ID* IfId,
unsigned long VersOption, UUID* ObjectUuid,
884 RPC_EP_INQ_HANDLE* InquiryContext)
886 WLog_ERR(TAG,
"Not implemented");
890 RPC_STATUS RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE* InquiryContext)
892 WLog_ERR(TAG,
"Not implemented");
896 RPC_STATUS RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE InquiryContext,
RPC_IF_ID* IfId,
897 RPC_BINDING_HANDLE* Binding, UUID* ObjectUuid, RPC_CSTR* Annotation)
899 WLog_ERR(TAG,
"Not implemented");
903 RPC_STATUS RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE InquiryContext,
RPC_IF_ID* IfId,
904 RPC_BINDING_HANDLE* Binding, UUID* ObjectUuid, RPC_WSTR* Annotation)
906 WLog_ERR(TAG,
"Not implemented");
910 RPC_STATUS RpcMgmtEpUnregister(RPC_BINDING_HANDLE EpBinding,
RPC_IF_ID* IfId,
911 RPC_BINDING_HANDLE Binding, UUID* ObjectUuid)
913 WLog_ERR(TAG,
"Not implemented");
917 RPC_STATUS RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN AuthorizationFn)
919 WLog_ERR(TAG,
"Not implemented");
923 RPC_STATUS RpcServerInqBindingHandle(RPC_BINDING_HANDLE* Binding)
925 WLog_ERR(TAG,
"Not implemented");