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