[WINSOCK]
[reactos.git] / reactos / dll / win32 / lsasrv / lsarpc.c
1 /* INCLUDES ****************************************************************/
2
3 #define WIN32_NO_STATUS
4 #include <windows.h>
5 #include <ntsecapi.h>
6 #define NTOS_MODE_USER
7 #include <ndk/ntndk.h>
8
9 #include <string.h>
10
11 #include "lsasrv.h"
12 #include "lsa_s.h"
13
14 #include <wine/debug.h>
15
16 typedef enum _LSA_DB_HANDLE_TYPE
17 {
18 LsaDbIgnoreHandle,
19 LsaDbPolicyHandle,
20 LsaDbAccountHandle
21 } LSA_DB_HANDLE_TYPE, *PLSA_DB_HANDLE_TYPE;
22
23 typedef struct _LSA_DB_HANDLE
24 {
25 ULONG Signature;
26 LSA_DB_HANDLE_TYPE HandleType;
27 LONG RefCount;
28 ACCESS_MASK Access;
29 } LSA_DB_HANDLE, *PLSA_DB_HANDLE;
30
31 #define LSAP_DB_SIGNATURE 0x12345678
32
33 static RTL_CRITICAL_SECTION PolicyHandleTableLock;
34
35 WINE_DEFAULT_DEBUG_CHANNEL(lsasrv);
36
37
38 /* FUNCTIONS ***************************************************************/
39
40 static LSAPR_HANDLE
41 LsapCreateDbHandle(LSA_DB_HANDLE_TYPE HandleType,
42 ACCESS_MASK DesiredAccess)
43 {
44 PLSA_DB_HANDLE DbHandle;
45
46 // RtlEnterCriticalSection(&PolicyHandleTableLock);
47
48 DbHandle = (PLSA_DB_HANDLE)RtlAllocateHeap(RtlGetProcessHeap(),
49 0,
50 sizeof(LSA_DB_HANDLE));
51 if (DbHandle != NULL)
52 {
53 DbHandle->Signature = LSAP_DB_SIGNATURE;
54 DbHandle->RefCount = 1;
55 DbHandle->HandleType = HandleType;
56 DbHandle->Access = DesiredAccess;
57 }
58
59 // RtlLeaveCriticalSection(&PolicyHandleTableLock);
60
61 return (LSAPR_HANDLE)DbHandle;
62 }
63
64
65 static BOOL
66 LsapValidateDbHandle(LSAPR_HANDLE Handle,
67 LSA_DB_HANDLE_TYPE HandleType)
68 {
69 PLSA_DB_HANDLE DbHandle = (PLSA_DB_HANDLE)Handle;
70 BOOL bValid = FALSE;
71
72 _SEH2_TRY
73 {
74 if (DbHandle->Signature == LSAP_DB_SIGNATURE)
75 {
76 if (HandleType == LsaDbIgnoreHandle)
77 bValid = TRUE;
78 else if (DbHandle->HandleType == HandleType)
79 bValid = TRUE;
80 }
81 }
82 _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
83 {
84 bValid = FALSE;
85 }
86 _SEH2_END;
87
88
89 return bValid;
90 }
91
92
93
94
95 VOID
96 LsarStartRpcServer(VOID)
97 {
98 RPC_STATUS Status;
99
100 RtlInitializeCriticalSection(&PolicyHandleTableLock);
101
102 TRACE("LsarStartRpcServer() called\n");
103
104 Status = RpcServerUseProtseqEpW(L"ncacn_np",
105 10,
106 L"\\pipe\\lsarpc",
107 NULL);
108 if (Status != RPC_S_OK)
109 {
110 WARN("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status);
111 return;
112 }
113
114 Status = RpcServerRegisterIf(lsarpc_v0_0_s_ifspec,
115 NULL,
116 NULL);
117 if (Status != RPC_S_OK)
118 {
119 WARN("RpcServerRegisterIf() failed (Status %lx)\n", Status);
120 return;
121 }
122
123 Status = RpcServerListen(1, 20, TRUE);
124 if (Status != RPC_S_OK)
125 {
126 WARN("RpcServerListen() failed (Status %lx)\n", Status);
127 return;
128 }
129
130 TRACE("LsarStartRpcServer() done\n");
131 }
132
133
134 void __RPC_USER LSAPR_HANDLE_rundown(LSAPR_HANDLE hHandle)
135 {
136
137 }
138
139
140 /* Function 0 */
141 NTSTATUS LsarClose(
142 LSAPR_HANDLE *ObjectHandle)
143 {
144 NTSTATUS Status = STATUS_SUCCESS;
145
146 TRACE("0x%p\n", ObjectHandle);
147
148 // RtlEnterCriticalSection(&PolicyHandleTableLock);
149
150 if (LsapValidateDbHandle(*ObjectHandle, LsaDbIgnoreHandle))
151 {
152 RtlFreeHeap(RtlGetProcessHeap(), 0, *ObjectHandle);
153 *ObjectHandle = NULL;
154 }
155 else
156 Status = STATUS_INVALID_HANDLE;
157
158 // RtlLeaveCriticalSection(&PolicyHandleTableLock);
159
160 return Status;
161 }
162
163
164 /* Function 1 */
165 NTSTATUS LsarDelete(
166 LSAPR_HANDLE ObjectHandle)
167 {
168 /* Deprecated */
169 return STATUS_NOT_SUPPORTED;
170 }
171
172
173 /* Function 2 */
174 NTSTATUS LsarEnumeratePrivileges(
175 LSAPR_HANDLE PolicyHandle,
176 DWORD *EnumerationContext,
177 PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer,
178 DWORD PreferedMaximumLength)
179 {
180 UNIMPLEMENTED;
181 return STATUS_NOT_IMPLEMENTED;
182 }
183
184
185 /* Function 3 */
186 NTSTATUS LsarQuerySecurityObject(
187 LSAPR_HANDLE ObjectHandle,
188 SECURITY_INFORMATION SecurityInformation,
189 PLSAPR_SR_SECURITY_DESCRIPTOR *SecurityDescriptor)
190 {
191 UNIMPLEMENTED;
192 return STATUS_NOT_IMPLEMENTED;
193 }
194
195
196 /* Function 4 */
197 NTSTATUS LsarSetSecurityObject(
198 LSAPR_HANDLE ObjectHandle,
199 SECURITY_INFORMATION SecurityInformation,
200 PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor)
201 {
202 UNIMPLEMENTED;
203 return STATUS_NOT_IMPLEMENTED;
204 }
205
206
207 /* Function 5 */
208 NTSTATUS LsarChangePassword(
209 handle_t IDL_handle,
210 PRPC_UNICODE_STRING String1,
211 PRPC_UNICODE_STRING String2,
212 PRPC_UNICODE_STRING String3,
213 PRPC_UNICODE_STRING String4,
214 PRPC_UNICODE_STRING String5)
215 {
216 /* Deprecated */
217 return STATUS_NOT_IMPLEMENTED;
218 }
219
220
221 /* Function 6 */
222 NTSTATUS LsarOpenPolicy(
223 LPWSTR SystemName,
224 PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
225 ACCESS_MASK DesiredAccess,
226 LSAPR_HANDLE *PolicyHandle)
227 {
228 NTSTATUS Status = STATUS_SUCCESS;
229
230 TRACE("LsarOpenPolicy called!\n");
231
232 RtlEnterCriticalSection(&PolicyHandleTableLock);
233
234 *PolicyHandle = LsapCreateDbHandle(LsaDbPolicyHandle,
235 DesiredAccess);
236 if (*PolicyHandle == NULL)
237 Status = STATUS_INSUFFICIENT_RESOURCES;
238
239 RtlLeaveCriticalSection(&PolicyHandleTableLock);
240
241 TRACE("LsarOpenPolicy done!\n");
242
243 return Status;
244 }
245
246
247 /* Function 7 */
248 NTSTATUS LsarQueryInformationPolicy(
249 LSAPR_HANDLE PolicyHandle,
250 POLICY_INFORMATION_CLASS InformationClass,
251 PLSAPR_POLICY_INFORMATION *PolicyInformation)
252 {
253 UNIMPLEMENTED;
254 return STATUS_NOT_IMPLEMENTED;
255 }
256
257
258 /* Function 8 */
259 NTSTATUS LsarSetInformationPolicy(
260 LSAPR_HANDLE PolicyHandle,
261 POLICY_INFORMATION_CLASS InformationClass,
262 PLSAPR_POLICY_INFORMATION PolicyInformation)
263 {
264 UNIMPLEMENTED;
265 return STATUS_NOT_IMPLEMENTED;
266 }
267
268
269 /* Function 9 */
270 NTSTATUS LsarClearAuditLog(
271 LSAPR_HANDLE ObjectHandle)
272 {
273 /* Deprecated */
274 return STATUS_NOT_IMPLEMENTED;
275 }
276
277
278 /* Function 10 */
279 NTSTATUS LsarCreateAccount(
280 LSAPR_HANDLE PolicyHandle,
281 PRPC_SID AccountSid,
282 ACCESS_MASK DesiredAccess,
283 LSAPR_HANDLE *AccountHandle)
284 {
285 UNIMPLEMENTED;
286 return STATUS_NOT_IMPLEMENTED;
287 }
288
289
290 /* Function 11 */
291 NTSTATUS LsarEnumerateAccounts(
292 LSAPR_HANDLE PolicyHandle,
293 DWORD *EnumerationContext,
294 PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer,
295 DWORD PreferedMaximumLength)
296 {
297 UNIMPLEMENTED;
298 return STATUS_NOT_IMPLEMENTED;
299 }
300
301
302 /* Function 12 */
303 NTSTATUS LsarCreateTrustedDomain(
304 LSAPR_HANDLE PolicyHandle,
305 PLSAPR_TRUST_INFORMATION TrustedDomainInformation,
306 ACCESS_MASK DesiredAccess,
307 LSAPR_HANDLE *TrustedDomainHandle)
308 {
309 UNIMPLEMENTED;
310 return STATUS_NOT_IMPLEMENTED;
311 }
312
313
314 /* Function 13 */
315 NTSTATUS LsarEnumerateTrustedDomains(
316 LSAPR_HANDLE PolicyHandle,
317 DWORD *EnumerationContext,
318 PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer,
319 DWORD PreferedMaximumLength)
320 {
321 UNIMPLEMENTED;
322 return STATUS_NOT_IMPLEMENTED;
323 }
324
325
326 /* Function 14 */
327 NTSTATUS LsarLookupNames(
328 LSAPR_HANDLE PolicyHandle,
329 DWORD Count,
330 PRPC_UNICODE_STRING Names,
331 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
332 PLSAPR_TRANSLATED_SIDS TranslatedSids,
333 LSAP_LOOKUP_LEVEL LookupLevel,
334 DWORD *MappedCount)
335 {
336 UNIMPLEMENTED;
337 return STATUS_NOT_IMPLEMENTED;
338 }
339
340
341 /* Function 15 */
342 NTSTATUS LsarLookupSids(
343 LSAPR_HANDLE PolicyHandle,
344 PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
345 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
346 PLSAPR_TRANSLATED_NAMES TranslatedNames,
347 LSAP_LOOKUP_LEVEL LookupLevel,
348 DWORD *MappedCount)
349 {
350 static const UNICODE_STRING UserName = RTL_CONSTANT_STRING(L"Administrator");
351 PLSAPR_TRANSLATED_NAME OutputNames = NULL;
352 ULONG OutputNamesLength;
353 ULONG i;
354
355 TRACE("LsarLookupSids(%p, %p, %p, %p, %d, %p)\n",
356 PolicyHandle, SidEnumBuffer, ReferencedDomains, TranslatedNames,
357 LookupLevel, MappedCount);
358
359 TranslatedNames->Entries = SidEnumBuffer->Entries;
360 TranslatedNames->Names = NULL;
361 *ReferencedDomains = NULL;
362
363 OutputNamesLength = SidEnumBuffer->Entries * sizeof(LSA_TRANSLATED_NAME);
364 OutputNames = MIDL_user_allocate(OutputNamesLength);
365 if (OutputNames == NULL)
366 {
367 return STATUS_INSUFFICIENT_RESOURCES;
368 }
369
370 RtlZeroMemory(OutputNames, OutputNamesLength);
371
372 for (i = 0; i < SidEnumBuffer->Entries; i++)
373 {
374 OutputNames[i].Use = SidTypeWellKnownGroup;
375 OutputNames[i].DomainIndex = 0;
376 OutputNames[i].Name.Buffer = MIDL_user_allocate(UserName.MaximumLength);
377 OutputNames[i].Name.Length = UserName.Length;
378 OutputNames[i].Name.MaximumLength = UserName.MaximumLength;
379 RtlCopyMemory(OutputNames[i].Name.Buffer, UserName.Buffer, UserName.MaximumLength);
380 }
381
382 *MappedCount = SidEnumBuffer->Entries;
383
384 TranslatedNames->Entries = SidEnumBuffer->Entries;
385 TranslatedNames->Names = OutputNames;
386
387 return STATUS_SUCCESS;
388 }
389
390
391 /* Function 16 */
392 NTSTATUS LsarCreateSecret(
393 LSAPR_HANDLE PolicyHandle,
394 PRPC_UNICODE_STRING SecretName,
395 ACCESS_MASK DesiredAccess,
396 LSAPR_HANDLE *SecretHandle)
397 {
398 UNIMPLEMENTED;
399 return STATUS_NOT_IMPLEMENTED;
400 }
401
402
403 /* Function 17 */
404 NTSTATUS LsarOpenAccount(
405 LSAPR_HANDLE PolicyHandle,
406 PRPC_SID AccountSid,
407 ACCESS_MASK DesiredAccess,
408 LSAPR_HANDLE *AccountHandle)
409 {
410 UNIMPLEMENTED;
411 return STATUS_NOT_IMPLEMENTED;
412 }
413
414
415 /* Function 18 */
416 NTSTATUS LsarEnumeratePrivilegesAccount(
417 LSAPR_HANDLE AccountHandle,
418 PLSAPR_PRIVILEGE_SET *Privileges)
419 {
420 UNIMPLEMENTED;
421 return STATUS_NOT_IMPLEMENTED;
422 }
423
424
425 /* Function 19 */
426 NTSTATUS LsarAddPrivilegesToAccount(
427 LSAPR_HANDLE AccountHandle,
428 PLSAPR_PRIVILEGE_SET Privileges)
429 {
430 UNIMPLEMENTED;
431 return STATUS_NOT_IMPLEMENTED;
432 }
433
434
435 /* Function 20 */
436 NTSTATUS LsarRemovePrivilegesFromAccount(
437 LSAPR_HANDLE AccountHandle,
438 BOOL AllPrivileges,
439 PLSAPR_PRIVILEGE_SET Privileges)
440 {
441 UNIMPLEMENTED;
442 return STATUS_NOT_IMPLEMENTED;
443 }
444
445
446 /* Function 21 */
447 NTSTATUS LsarGetQuotasForAccount(
448 LSAPR_HANDLE AccountHandle,
449 PQUOTA_LIMITS QuotaLimits)
450 {
451 UNIMPLEMENTED;
452 return STATUS_NOT_IMPLEMENTED;
453 }
454
455
456 /* Function 22 */
457 NTSTATUS LsarSetQuotasForAccount(
458 LSAPR_HANDLE AccountHandle,
459 PQUOTA_LIMITS QuotaLimits)
460 {
461 UNIMPLEMENTED;
462 return STATUS_NOT_IMPLEMENTED;
463 }
464
465
466 /* Function 23 */
467 NTSTATUS LsarGetSystemAccessAccount(
468 LSAPR_HANDLE AccountHandle,
469 ACCESS_MASK *SystemAccess)
470 {
471 UNIMPLEMENTED;
472 return STATUS_NOT_IMPLEMENTED;
473 }
474
475
476 /* Function 24 */
477 NTSTATUS LsarSetSystemAccessAccount(
478 LSAPR_HANDLE AccountHandle,
479 ACCESS_MASK SystemAccess)
480 {
481 UNIMPLEMENTED;
482 return STATUS_NOT_IMPLEMENTED;
483 }
484
485
486 /* Function 25 */
487 NTSTATUS LsarOpenTrustedDomain(
488 LSAPR_HANDLE PolicyHandle,
489 PRPC_SID TrustedDomainSid,
490 ACCESS_MASK DesiredAccess,
491 LSAPR_HANDLE *TrustedDomainHandle)
492 {
493 UNIMPLEMENTED;
494 return STATUS_NOT_IMPLEMENTED;
495 }
496
497
498 /* Function 26 */
499 NTSTATUS LsarQueryInfoTrustedDomain(
500 LSAPR_HANDLE TrustedDomainHandle,
501 TRUSTED_INFORMATION_CLASS InformationClass,
502 PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation)
503 {
504 UNIMPLEMENTED;
505 return STATUS_NOT_IMPLEMENTED;
506 }
507
508
509 /* Function 27 */
510 NTSTATUS LsarSetInformationTrustedDomain(
511 LSAPR_HANDLE TrustedDomainHandle,
512 TRUSTED_INFORMATION_CLASS InformationClass,
513 PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation)
514 {
515 UNIMPLEMENTED;
516 return STATUS_NOT_IMPLEMENTED;
517 }
518
519
520 /* Function 28 */
521 NTSTATUS LsarOpenSecret(
522 LSAPR_HANDLE PolicyHandle,
523 PRPC_UNICODE_STRING SecretName,
524 ACCESS_MASK DesiredAccess,
525 LSAPR_HANDLE *SecretHandle)
526 {
527 UNIMPLEMENTED;
528 return STATUS_NOT_IMPLEMENTED;
529 }
530
531
532 /* Function 29 */
533 NTSTATUS LsarSetSecret(
534 LSAPR_HANDLE *SecretHandle,
535 PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue,
536 PLSAPR_CR_CIPHER_VALUE EncryptedOldValue)
537 {
538 UNIMPLEMENTED;
539 return STATUS_NOT_IMPLEMENTED;
540 }
541
542
543 /* Function 30 */
544 NTSTATUS LsarQuerySecret(
545 LSAPR_HANDLE SecretHandle,
546 PLSAPR_CR_CIPHER_VALUE *EncryptedCurrentValue,
547 PLARGE_INTEGER CurrentValueSetTime,
548 PLSAPR_CR_CIPHER_VALUE *EncryptedOldValue,
549 PLARGE_INTEGER OldValueSetTime)
550 {
551 UNIMPLEMENTED;
552 return STATUS_NOT_IMPLEMENTED;
553 }
554
555
556 /* Function 31 */
557 NTSTATUS LsarLookupPrivilegeValue(
558 LSAPR_HANDLE PolicyHandle,
559 PRPC_UNICODE_STRING Name,
560 PLUID Value)
561 {
562 NTSTATUS Status;
563
564 TRACE("LsarLookupPrivilegeValue(%p, %wZ, %p)\n",
565 PolicyHandle, Name, Value);
566
567 if (!LsapValidateDbHandle(PolicyHandle, LsaDbPolicyHandle))
568 {
569 ERR("Invalid handle\n");
570 return STATUS_INVALID_HANDLE;
571 }
572
573 TRACE("Privilege: %wZ\n", Name);
574
575 Status = LsarpLookupPrivilegeValue((PUNICODE_STRING)Name,
576 Value);
577
578 return Status;
579 }
580
581
582 /* Function 32 */
583 NTSTATUS LsarLookupPrivilegeName(
584 LSAPR_HANDLE PolicyHandle,
585 PLUID Value,
586 PRPC_UNICODE_STRING *Name)
587 {
588 NTSTATUS Status;
589
590 TRACE("LsarLookupPrivilegeName(%p, %p, %p)\n",
591 PolicyHandle, Value, Name);
592
593 if (!LsapValidateDbHandle(PolicyHandle, LsaDbPolicyHandle))
594 {
595 ERR("Invalid handle\n");
596 return STATUS_INVALID_HANDLE;
597 }
598
599 Status = LsarpLookupPrivilegeName(Value, (PUNICODE_STRING*)Name);
600
601 return Status;
602 }
603
604
605 /* Function 33 */
606 NTSTATUS LsarLookupPrivilegeDisplayName(
607 LSAPR_HANDLE PolicyHandle,
608 PRPC_UNICODE_STRING Name,
609 USHORT ClientLanguage,
610 USHORT ClientSystemDefaultLanguage,
611 PRPC_UNICODE_STRING *DisplayName,
612 USHORT *LanguageReturned)
613 {
614 UNIMPLEMENTED;
615 return STATUS_NOT_IMPLEMENTED;
616 }
617
618
619 /* Function 34 */
620 NTSTATUS LsarDeleteObject(
621 LSAPR_HANDLE *ObjectHandle)
622 {
623 UNIMPLEMENTED;
624 return STATUS_NOT_IMPLEMENTED;
625 }
626
627
628 /* Function 35 */
629 NTSTATUS LsarEnumerateAccountsWithUserRight(
630 LSAPR_HANDLE PolicyHandle,
631 PRPC_UNICODE_STRING UserRight,
632 PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer)
633 {
634 UNIMPLEMENTED;
635 return STATUS_NOT_IMPLEMENTED;
636 }
637
638
639 /* Function 36 */
640 NTSTATUS LsarEnmuerateAccountRights(
641 LSAPR_HANDLE PolicyHandle,
642 PRPC_SID AccountSid,
643 PLSAPR_USER_RIGHT_SET UserRights)
644 {
645 FIXME("(%p,%p,%p) stub\n", PolicyHandle, AccountSid, UserRights);
646
647 if (!LsapValidateDbHandle(PolicyHandle, LsaDbPolicyHandle))
648 return STATUS_INVALID_HANDLE;
649
650 UserRights->Entries = 0;
651 UserRights->UserRights = NULL;
652 return STATUS_OBJECT_NAME_NOT_FOUND;
653 }
654
655
656 /* Function 37 */
657 NTSTATUS LsarAddAccountRights(
658 LSAPR_HANDLE PolicyHandle,
659 PRPC_SID AccountSid,
660 PLSAPR_USER_RIGHT_SET UserRights)
661 {
662 UNIMPLEMENTED;
663 return STATUS_NOT_IMPLEMENTED;
664 }
665
666
667 /* Function 38 */
668 NTSTATUS LsarRemoveAccountRights(
669 LSAPR_HANDLE PolicyHandle,
670 PRPC_SID AccountSid,
671 BOOL AllRights,
672 PLSAPR_USER_RIGHT_SET UserRights)
673 {
674 UNIMPLEMENTED;
675 return STATUS_NOT_IMPLEMENTED;
676 }
677
678
679 /* Function 39 */
680 NTSTATUS LsarQueryTrustedDomainInfo(
681 LSAPR_HANDLE PolicyHandle,
682 PRPC_SID TrustedDomainSid,
683 TRUSTED_INFORMATION_CLASS InformationClass,
684 PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation)
685 {
686 UNIMPLEMENTED;
687 return STATUS_NOT_IMPLEMENTED;
688 }
689
690
691 /* Function 40 */
692 NTSTATUS LsarSetTrustedDomainInfo(
693 LSAPR_HANDLE PolicyHandle,
694 PRPC_SID TrustedDomainSid,
695 TRUSTED_INFORMATION_CLASS InformationClass,
696 PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation)
697 {
698 UNIMPLEMENTED;
699 return STATUS_NOT_IMPLEMENTED;
700 }
701
702
703 /* Function 41 */
704 NTSTATUS LsarDeleteTrustedDomain(
705 LSAPR_HANDLE PolicyHandle,
706 PRPC_SID TrustedDomainSid)
707 {
708 UNIMPLEMENTED;
709 return STATUS_NOT_IMPLEMENTED;
710 }
711
712
713 /* Function 42 */
714 NTSTATUS LsarStorePrivateData(
715 LSAPR_HANDLE PolicyHandle,
716 PRPC_UNICODE_STRING KeyName,
717 PLSAPR_CR_CIPHER_VALUE EncryptedData)
718 {
719 UNIMPLEMENTED;
720 return STATUS_NOT_IMPLEMENTED;
721 }
722
723
724 /* Function 43 */
725 NTSTATUS LsarRetrievePrivateData(
726 LSAPR_HANDLE PolicyHandle,
727 PRPC_UNICODE_STRING KeyName,
728 PLSAPR_CR_CIPHER_VALUE *EncryptedData)
729 {
730 UNIMPLEMENTED;
731 return STATUS_NOT_IMPLEMENTED;
732 }
733
734
735 /* Function 44 */
736 NTSTATUS LsarOpenPolicy2(
737 LPWSTR SystemName,
738 PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
739 ACCESS_MASK DesiredAccess,
740 LSAPR_HANDLE *PolicyHandle)
741 {
742 UNIMPLEMENTED;
743 return STATUS_NOT_IMPLEMENTED;
744 }
745
746
747 /* Function 45 */
748 NTSTATUS LsarGetUserName(
749 LPWSTR SystemName,
750 PRPC_UNICODE_STRING *UserName,
751 PRPC_UNICODE_STRING *DomainName)
752 {
753 UNIMPLEMENTED;
754 return STATUS_NOT_IMPLEMENTED;
755 }
756
757
758 /* Function 46 */
759 NTSTATUS LsarQueryInformationPolicy2(
760 LSAPR_HANDLE PolicyHandle,
761 POLICY_INFORMATION_CLASS InformationClass,
762 unsigned long *PolicyInformation)
763 {
764 UNIMPLEMENTED;
765 return STATUS_NOT_IMPLEMENTED;
766 }
767
768
769 /* Function 47 */
770 NTSTATUS LsarSetInformationPolicy2(
771 LSAPR_HANDLE PolicyHandle,
772 POLICY_INFORMATION_CLASS InformationClass,
773 unsigned long PolicyInformation)
774 {
775 UNIMPLEMENTED;
776 return STATUS_NOT_IMPLEMENTED;
777 }
778
779
780 /* Function 48 */
781 NTSTATUS LsarQueryTrustedDomainInfoByName(
782 LSAPR_HANDLE PolicyHandle,
783 PRPC_UNICODE_STRING TrustedDomainName,
784 POLICY_INFORMATION_CLASS InformationClass,
785 unsigned long *PolicyInformation)
786 {
787 UNIMPLEMENTED;
788 return STATUS_NOT_IMPLEMENTED;
789 }
790
791
792 /* Function 49 */
793 NTSTATUS LsarSetTrustedDomainInfoByName(
794 LSAPR_HANDLE PolicyHandle,
795 PRPC_UNICODE_STRING TrustedDomainName,
796 POLICY_INFORMATION_CLASS InformationClass,
797 unsigned long PolicyInformation)
798 {
799 UNIMPLEMENTED;
800 return STATUS_NOT_IMPLEMENTED;
801 }
802
803
804 /* Function 50 */
805 NTSTATUS LsarEnumerateTrustedDomainsEx(
806 LSAPR_HANDLE PolicyHandle,
807 DWORD *EnumerationContext,
808 PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer,
809 DWORD PreferedMaximumLength)
810 {
811 UNIMPLEMENTED;
812 return STATUS_NOT_IMPLEMENTED;
813 }
814
815
816 /* Function 51 */
817 NTSTATUS LsarCreateTrustedDomainEx(
818 LSAPR_HANDLE PolicyHandle,
819 PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
820 PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthentificationInformation,
821 ACCESS_MASK DesiredAccess,
822 LSAPR_HANDLE *TrustedDomainHandle)
823 {
824 UNIMPLEMENTED;
825 return STATUS_NOT_IMPLEMENTED;
826 }
827
828
829 /* Function 52 */
830 NTSTATUS LsarSetPolicyReplicationHandle(
831 PLSAPR_HANDLE PolicyHandle)
832 {
833 /* Deprecated */
834 return STATUS_NOT_IMPLEMENTED;
835 }
836
837
838 /* Function 53 */
839 NTSTATUS LsarQueryDomainInformationPolicy(
840 LSAPR_HANDLE PolicyHandle,
841 POLICY_INFORMATION_CLASS InformationClass,
842 unsigned long *PolicyInformation)
843 {
844 UNIMPLEMENTED;
845 return STATUS_NOT_IMPLEMENTED;
846 }
847
848
849 /* Function 54 */
850 NTSTATUS LsarSetDomainInformationPolicy(
851 LSAPR_HANDLE PolicyHandle,
852 POLICY_INFORMATION_CLASS InformationClass,
853 unsigned long PolicyInformation)
854 {
855 UNIMPLEMENTED;
856 return STATUS_NOT_IMPLEMENTED;
857 }
858
859
860 /* Function 55 */
861 NTSTATUS LsarOpenTrustedDomainByName(
862 LSAPR_HANDLE PolicyHandle,
863 PRPC_UNICODE_STRING TrustedDomainName,
864 ACCESS_MASK DesiredAccess,
865 LSAPR_HANDLE *TrustedDomainHandle)
866 {
867 UNIMPLEMENTED;
868 return STATUS_NOT_IMPLEMENTED;
869 }
870
871
872 /* Function 56 */
873 NTSTATUS LsarTestCall(
874 handle_t hBinding)
875 {
876 UNIMPLEMENTED;
877 return STATUS_NOT_IMPLEMENTED;
878 }
879
880
881 /* Function 57 */
882 NTSTATUS LsarLookupSids2(
883 LSAPR_HANDLE PolicyHandle,
884 PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
885 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
886 PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
887 LSAP_LOOKUP_LEVEL LookupLevel,
888 DWORD *MappedCount,
889 DWORD LookupOptions,
890 DWORD ClientRevision)
891 {
892 UNIMPLEMENTED;
893 return STATUS_NOT_IMPLEMENTED;
894 }
895
896
897 /* Function 58 */
898 NTSTATUS LsarLookupNames2(
899 LSAPR_HANDLE PolicyHandle,
900 DWORD Count,
901 PRPC_UNICODE_STRING Names,
902 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
903 PLSAPR_TRANSLATED_SID_EX TranslatedSids,
904 LSAP_LOOKUP_LEVEL LookupLevel,
905 DWORD *MappedCount,
906 DWORD LookupOptions,
907 DWORD ClientRevision)
908 {
909 UNIMPLEMENTED;
910 return STATUS_NOT_IMPLEMENTED;
911 }
912
913
914 /* Function 59 */
915 NTSTATUS LsarCreateTrustedDomainEx2(
916 LSAPR_HANDLE PolicyHandle,
917 PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
918 PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthentificationInformation,
919 ACCESS_MASK DesiredAccess,
920 LSAPR_HANDLE *TrustedDomainHandle)
921 {
922 UNIMPLEMENTED;
923 return STATUS_NOT_IMPLEMENTED;
924 }
925
926
927 /* Function 60 */
928 NTSTATUS CredrWrite(
929 handle_t hBinding)
930 {
931 UNIMPLEMENTED;
932 return STATUS_NOT_IMPLEMENTED;
933 }
934
935
936 /* Function 61 */
937 NTSTATUS CredrRead(
938 handle_t hBinding)
939 {
940 UNIMPLEMENTED;
941 return STATUS_NOT_IMPLEMENTED;
942 }
943
944
945 /* Function 62 */
946 NTSTATUS CredrEnumerate(
947 handle_t hBinding)
948 {
949 UNIMPLEMENTED;
950 return STATUS_NOT_IMPLEMENTED;
951 }
952
953
954 /* Function 63 */
955 NTSTATUS CredrWriteDomainCredentials(
956 handle_t hBinding)
957 {
958 UNIMPLEMENTED;
959 return STATUS_NOT_IMPLEMENTED;
960 }
961
962
963 /* Function 64 */
964 NTSTATUS CredrReadDomainCredentials(
965 handle_t hBinding)
966 {
967 UNIMPLEMENTED;
968 return STATUS_NOT_IMPLEMENTED;
969 }
970
971
972 /* Function 65 */
973 NTSTATUS CredrDelete(
974 handle_t hBinding)
975 {
976 UNIMPLEMENTED;
977 return STATUS_NOT_IMPLEMENTED;
978 }
979
980
981 /* Function 66 */
982 NTSTATUS CredrGetTargetInfo(
983 handle_t hBinding)
984 {
985 UNIMPLEMENTED;
986 return STATUS_NOT_IMPLEMENTED;
987 }
988
989
990 /* Function 67 */
991 NTSTATUS CredrProfileLoaded(
992 handle_t hBinding)
993 {
994 UNIMPLEMENTED;
995 return STATUS_NOT_IMPLEMENTED;
996 }
997
998
999 /* Function 68 */
1000 NTSTATUS LsarLookupNames3(
1001 LSAPR_HANDLE PolicyHandle,
1002 DWORD Count,
1003 PRPC_UNICODE_STRING Names,
1004 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
1005 PLSAPR_TRANSLATED_SID_EX2 TranslatedSids,
1006 LSAP_LOOKUP_LEVEL LookupLevel,
1007 DWORD *MappedCount,
1008 DWORD LookupOptions,
1009 DWORD ClientRevision)
1010 {
1011 UNIMPLEMENTED;
1012 return STATUS_NOT_IMPLEMENTED;
1013 }
1014
1015
1016 /* Function 69 */
1017 NTSTATUS CredrGetSessionTypes(
1018 handle_t hBinding)
1019 {
1020 UNIMPLEMENTED;
1021 return STATUS_NOT_IMPLEMENTED;
1022 }
1023
1024
1025 /* Function 70 */
1026 NTSTATUS LsarRegisterAuditEvent(
1027 handle_t hBinding)
1028 {
1029 UNIMPLEMENTED;
1030 return STATUS_NOT_IMPLEMENTED;
1031 }
1032
1033
1034 /* Function 71 */
1035 NTSTATUS LsarGenAuditEvent(
1036 handle_t hBinding)
1037 {
1038 UNIMPLEMENTED;
1039 return STATUS_NOT_IMPLEMENTED;
1040 }
1041
1042
1043 /* Function 72 */
1044 NTSTATUS LsarUnregisterAuditEvent(
1045 handle_t hBinding)
1046 {
1047 UNIMPLEMENTED;
1048 return STATUS_NOT_IMPLEMENTED;
1049 }
1050
1051
1052 /* Function 73 */
1053 NTSTATUS LsarQueryForestTrustInformation(
1054 LSAPR_HANDLE PolicyHandle,
1055 PLSA_UNICODE_STRING TrustedDomainName,
1056 LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
1057 PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo)
1058 {
1059 UNIMPLEMENTED;
1060 return STATUS_NOT_IMPLEMENTED;
1061 }
1062
1063
1064 /* Function 74 */
1065 NTSTATUS LsarSetForestTrustInformation(
1066 LSAPR_HANDLE PolicyHandle,
1067 PLSA_UNICODE_STRING TrustedDomainName,
1068 LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
1069 PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo,
1070 BOOL CheckOnly,
1071 PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo)
1072 {
1073 UNIMPLEMENTED;
1074 return STATUS_NOT_IMPLEMENTED;
1075 }
1076
1077
1078 /* Function 75 */
1079 NTSTATUS CredrRename(
1080 handle_t hBinding)
1081 {
1082 UNIMPLEMENTED;
1083 return STATUS_NOT_IMPLEMENTED;
1084 }
1085
1086
1087 /* Function 76 */
1088 NTSTATUS LsarLookupSids3(
1089 LSAPR_HANDLE PolicyHandle,
1090 PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
1091 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
1092 PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
1093 LSAP_LOOKUP_LEVEL LookupLevel,
1094 DWORD *MappedCount,
1095 DWORD LookupOptions,
1096 DWORD ClientRevision)
1097 {
1098 UNIMPLEMENTED;
1099 return STATUS_NOT_IMPLEMENTED;
1100 }
1101
1102
1103 /* Function 77 */
1104 NTSTATUS LsarLookupNames4(
1105 handle_t RpcHandle,
1106 DWORD Count,
1107 PRPC_UNICODE_STRING Names,
1108 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
1109 PLSAPR_TRANSLATED_SID_EX2 TranslatedSids,
1110 LSAP_LOOKUP_LEVEL LookupLevel,
1111 DWORD *MappedCount,
1112 DWORD LookupOptions,
1113 DWORD ClientRevision)
1114 {
1115 UNIMPLEMENTED;
1116 return STATUS_NOT_IMPLEMENTED;
1117 }
1118
1119
1120 /* Function 78 */
1121 NTSTATUS LsarOpenPolicySce(
1122 handle_t hBinding)
1123 {
1124 UNIMPLEMENTED;
1125 return STATUS_NOT_IMPLEMENTED;
1126 }
1127
1128
1129 /* Function 79 */
1130 NTSTATUS LsarAdtRegisterSecurityEventSource(
1131 handle_t hBinding)
1132 {
1133 UNIMPLEMENTED;
1134 return STATUS_NOT_IMPLEMENTED;
1135 }
1136
1137
1138 /* Function 80 */
1139 NTSTATUS LsarAdtUnregisterSecurityEventSource(
1140 handle_t hBinding)
1141 {
1142 UNIMPLEMENTED;
1143 return STATUS_NOT_IMPLEMENTED;
1144 }
1145
1146
1147 /* Function 81 */
1148 NTSTATUS LsarAdtReportSecurityEvent(
1149 handle_t hBinding)
1150 {
1151 UNIMPLEMENTED;
1152 return STATUS_NOT_IMPLEMENTED;
1153 }
1154
1155
1156 /* Function 82 */
1157 NTSTATUS CredrFindBestCredential(
1158 handle_t hBinding)
1159 {
1160 UNIMPLEMENTED;
1161 return STATUS_NOT_IMPLEMENTED;
1162 }
1163
1164
1165 /* Function 83 */
1166 NTSTATUS LsarSetAuditPolicy(
1167 handle_t hBinding)
1168 {
1169 UNIMPLEMENTED;
1170 return STATUS_NOT_IMPLEMENTED;
1171 }
1172
1173
1174 /* Function 84 */
1175 NTSTATUS LsarQueryAuditPolicy(
1176 handle_t hBinding)
1177 {
1178 UNIMPLEMENTED;
1179 return STATUS_NOT_IMPLEMENTED;
1180 }
1181
1182
1183 /* Function 85 */
1184 NTSTATUS LsarEnumerateAuditPolicy(
1185 handle_t hBinding)
1186 {
1187 UNIMPLEMENTED;
1188 return STATUS_NOT_IMPLEMENTED;
1189 }
1190
1191
1192 /* Function 86 */
1193 NTSTATUS LsarEnumerateAuditCategories(
1194 handle_t hBinding)
1195 {
1196 UNIMPLEMENTED;
1197 return STATUS_NOT_IMPLEMENTED;
1198 }
1199
1200
1201 /* Function 87 */
1202 NTSTATUS LsarEnumerateAuditSubCategories(
1203 handle_t hBinding)
1204 {
1205 UNIMPLEMENTED;
1206 return STATUS_NOT_IMPLEMENTED;
1207 }
1208
1209
1210 /* Function 88 */
1211 NTSTATUS LsarLookupAuditCategoryName(
1212 handle_t hBinding)
1213 {
1214 UNIMPLEMENTED;
1215 return STATUS_NOT_IMPLEMENTED;
1216 }
1217
1218
1219 /* Function 89 */
1220 NTSTATUS LsarLookupAuditSubCategoryName(
1221 handle_t hBinding)
1222 {
1223 UNIMPLEMENTED;
1224 return STATUS_NOT_IMPLEMENTED;
1225 }
1226
1227
1228 /* Function 90 */
1229 NTSTATUS LsarSetAuditSecurity(
1230 handle_t hBinding)
1231 {
1232 UNIMPLEMENTED;
1233 return STATUS_NOT_IMPLEMENTED;
1234 }
1235
1236
1237 /* Function 91 */
1238 NTSTATUS LsarQueryAuditSecurity(
1239 handle_t hBinding)
1240 {
1241 UNIMPLEMENTED;
1242 return STATUS_NOT_IMPLEMENTED;
1243 }
1244
1245
1246 /* Function 92 */
1247 NTSTATUS CredReadByTokenHandle(
1248 handle_t hBinding)
1249 {
1250 UNIMPLEMENTED;
1251 return STATUS_NOT_IMPLEMENTED;
1252 }
1253
1254
1255 /* Function 93 */
1256 NTSTATUS CredrRestoreCredentials(
1257 handle_t hBinding)
1258 {
1259 UNIMPLEMENTED;
1260 return STATUS_NOT_IMPLEMENTED;
1261 }
1262
1263
1264 /* Function 94 */
1265 NTSTATUS CredrBackupCredentials(
1266 handle_t hBinding)
1267 {
1268 UNIMPLEMENTED;
1269 return STATUS_NOT_IMPLEMENTED;
1270 }
1271
1272 /* EOF */