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