[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 <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 UNIMPLEMENTED;
351 return STATUS_NOT_IMPLEMENTED;
352 }
353
354
355 /* Function 16 */
356 NTSTATUS LsarCreateSecret(
357 LSAPR_HANDLE PolicyHandle,
358 PRPC_UNICODE_STRING SecretName,
359 ACCESS_MASK DesiredAccess,
360 LSAPR_HANDLE *SecretHandle)
361 {
362 UNIMPLEMENTED;
363 return STATUS_NOT_IMPLEMENTED;
364 }
365
366
367 /* Function 17 */
368 NTSTATUS LsarOpenAccount(
369 LSAPR_HANDLE PolicyHandle,
370 PRPC_SID AccountSid,
371 ACCESS_MASK DesiredAccess,
372 LSAPR_HANDLE *AccountHandle)
373 {
374 UNIMPLEMENTED;
375 return STATUS_NOT_IMPLEMENTED;
376 }
377
378
379 /* Function 18 */
380 NTSTATUS LsarEnumeratePrivilegesAccount(
381 LSAPR_HANDLE AccountHandle,
382 PLSAPR_PRIVILEGE_SET *Privileges)
383 {
384 UNIMPLEMENTED;
385 return STATUS_NOT_IMPLEMENTED;
386 }
387
388
389 /* Function 19 */
390 NTSTATUS LsarAddPrivilegesToAccount(
391 LSAPR_HANDLE AccountHandle,
392 PLSAPR_PRIVILEGE_SET Privileges)
393 {
394 UNIMPLEMENTED;
395 return STATUS_NOT_IMPLEMENTED;
396 }
397
398
399 /* Function 20 */
400 NTSTATUS LsarRemovePrivilegesFromAccount(
401 LSAPR_HANDLE AccountHandle,
402 BOOL AllPrivileges,
403 PLSAPR_PRIVILEGE_SET Privileges)
404 {
405 UNIMPLEMENTED;
406 return STATUS_NOT_IMPLEMENTED;
407 }
408
409
410 /* Function 21 */
411 NTSTATUS LsarGetQuotasForAccount(
412 LSAPR_HANDLE AccountHandle,
413 PQUOTA_LIMITS QuotaLimits)
414 {
415 UNIMPLEMENTED;
416 return STATUS_NOT_IMPLEMENTED;
417 }
418
419
420 /* Function 22 */
421 NTSTATUS LsarSetQuotasForAccount(
422 LSAPR_HANDLE AccountHandle,
423 PQUOTA_LIMITS QuotaLimits)
424 {
425 UNIMPLEMENTED;
426 return STATUS_NOT_IMPLEMENTED;
427 }
428
429
430 /* Function 23 */
431 NTSTATUS LsarGetSystemAccessAccount(
432 LSAPR_HANDLE AccountHandle,
433 ACCESS_MASK *SystemAccess)
434 {
435 UNIMPLEMENTED;
436 return STATUS_NOT_IMPLEMENTED;
437 }
438
439
440 /* Function 24 */
441 NTSTATUS LsarSetSystemAccessAccount(
442 LSAPR_HANDLE AccountHandle,
443 ACCESS_MASK SystemAccess)
444 {
445 UNIMPLEMENTED;
446 return STATUS_NOT_IMPLEMENTED;
447 }
448
449
450 /* Function 25 */
451 NTSTATUS LsarOpenTrustedDomain(
452 LSAPR_HANDLE PolicyHandle,
453 PRPC_SID TrustedDomainSid,
454 ACCESS_MASK DesiredAccess,
455 LSAPR_HANDLE *TrustedDomainHandle)
456 {
457 UNIMPLEMENTED;
458 return STATUS_NOT_IMPLEMENTED;
459 }
460
461
462 /* Function 26 */
463 NTSTATUS LsarQueryInfoTrustedDomain(
464 LSAPR_HANDLE TrustedDomainHandle,
465 TRUSTED_INFORMATION_CLASS InformationClass,
466 PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation)
467 {
468 UNIMPLEMENTED;
469 return STATUS_NOT_IMPLEMENTED;
470 }
471
472
473 /* Function 27 */
474 NTSTATUS LsarSetInformationTrustedDomain(
475 LSAPR_HANDLE TrustedDomainHandle,
476 TRUSTED_INFORMATION_CLASS InformationClass,
477 PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation)
478 {
479 UNIMPLEMENTED;
480 return STATUS_NOT_IMPLEMENTED;
481 }
482
483
484 /* Function 28 */
485 NTSTATUS LsarOpenSecret(
486 LSAPR_HANDLE PolicyHandle,
487 PRPC_UNICODE_STRING SecretName,
488 ACCESS_MASK DesiredAccess,
489 LSAPR_HANDLE *SecretHandle)
490 {
491 UNIMPLEMENTED;
492 return STATUS_NOT_IMPLEMENTED;
493 }
494
495
496 /* Function 29 */
497 NTSTATUS LsarSetSecret(
498 LSAPR_HANDLE *SecretHandle,
499 PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue,
500 PLSAPR_CR_CIPHER_VALUE EncryptedOldValue)
501 {
502 UNIMPLEMENTED;
503 return STATUS_NOT_IMPLEMENTED;
504 }
505
506
507 /* Function 30 */
508 NTSTATUS LsarQuerySecret(
509 LSAPR_HANDLE SecretHandle,
510 PLSAPR_CR_CIPHER_VALUE *EncryptedCurrentValue,
511 PLARGE_INTEGER CurrentValueSetTime,
512 PLSAPR_CR_CIPHER_VALUE *EncryptedOldValue,
513 PLARGE_INTEGER OldValueSetTime)
514 {
515 UNIMPLEMENTED;
516 return STATUS_NOT_IMPLEMENTED;
517 }
518
519
520 /* Function 31 */
521 NTSTATUS LsarLookupPrivilegeValue(
522 LSAPR_HANDLE PolicyHandle,
523 PRPC_UNICODE_STRING Name,
524 PLUID Value)
525 {
526 NTSTATUS Status;
527
528 TRACE("LsarLookupPrivilegeValue(%p, %wZ, %p)\n",
529 PolicyHandle, Name, Value);
530
531 if (!LsapValidateDbHandle(PolicyHandle, LsaDbPolicyHandle))
532 {
533 ERR("Invalid handle\n");
534 return STATUS_INVALID_HANDLE;
535 }
536
537 TRACE("Privilege: %wZ\n", Name);
538
539 Status = LsarpLookupPrivilegeValue((PUNICODE_STRING)Name,
540 Value);
541
542 return Status;
543 }
544
545
546 /* Function 32 */
547 NTSTATUS LsarLookupPrivilegeName(
548 LSAPR_HANDLE PolicyHandle,
549 PLUID Value,
550 PRPC_UNICODE_STRING *Name)
551 {
552 NTSTATUS Status;
553
554 TRACE("LsarLookupPrivilegeName(%p, %p, %p)\n",
555 PolicyHandle, Value, Name);
556
557 if (!LsapValidateDbHandle(PolicyHandle, LsaDbPolicyHandle))
558 {
559 ERR("Invalid handle\n");
560 return STATUS_INVALID_HANDLE;
561 }
562
563 Status = LsarpLookupPrivilegeName(Value, (PUNICODE_STRING*)Name);
564
565 return Status;
566 }
567
568
569 /* Function 33 */
570 NTSTATUS LsarLookupPrivilegeDisplayName(
571 LSAPR_HANDLE PolicyHandle,
572 PRPC_UNICODE_STRING Name,
573 USHORT ClientLanguage,
574 USHORT ClientSystemDefaultLanguage,
575 PRPC_UNICODE_STRING *DisplayName,
576 USHORT *LanguageReturned)
577 {
578 UNIMPLEMENTED;
579 return STATUS_NOT_IMPLEMENTED;
580 }
581
582
583 /* Function 34 */
584 NTSTATUS LsarDeleteObject(
585 LSAPR_HANDLE *ObjectHandle)
586 {
587 UNIMPLEMENTED;
588 return STATUS_NOT_IMPLEMENTED;
589 }
590
591
592 /* Function 35 */
593 NTSTATUS LsarEnumerateAccountsWithUserRight(
594 LSAPR_HANDLE PolicyHandle,
595 PRPC_UNICODE_STRING UserRight,
596 PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer)
597 {
598 UNIMPLEMENTED;
599 return STATUS_NOT_IMPLEMENTED;
600 }
601
602
603 /* Function 36 */
604 NTSTATUS LsarEnmuerateAccountRights(
605 LSAPR_HANDLE PolicyHandle,
606 PRPC_SID AccountSid,
607 PLSAPR_USER_RIGHT_SET UserRights)
608 {
609 FIXME("(%p,%p,%p) stub\n", PolicyHandle, AccountSid, UserRights);
610
611 if (!LsapValidateDbHandle(PolicyHandle, LsaDbPolicyHandle))
612 return STATUS_INVALID_HANDLE;
613
614 UserRights->Entries = 0;
615 UserRights->UserRights = NULL;
616 return STATUS_OBJECT_NAME_NOT_FOUND;
617 }
618
619
620 /* Function 37 */
621 NTSTATUS LsarAddAccountRights(
622 LSAPR_HANDLE PolicyHandle,
623 PRPC_SID AccountSid,
624 PLSAPR_USER_RIGHT_SET UserRights)
625 {
626 UNIMPLEMENTED;
627 return STATUS_NOT_IMPLEMENTED;
628 }
629
630
631 /* Function 38 */
632 NTSTATUS LsarRemoveAccountRights(
633 LSAPR_HANDLE PolicyHandle,
634 PRPC_SID AccountSid,
635 BOOL AllRights,
636 PLSAPR_USER_RIGHT_SET UserRights)
637 {
638 UNIMPLEMENTED;
639 return STATUS_NOT_IMPLEMENTED;
640 }
641
642
643 /* Function 39 */
644 NTSTATUS LsarQueryTrustedDomainInfo(
645 LSAPR_HANDLE PolicyHandle,
646 PRPC_SID TrustedDomainSid,
647 TRUSTED_INFORMATION_CLASS InformationClass,
648 PLSAPR_TRUSTED_DOMAIN_INFO *TrustedDomainInformation)
649 {
650 UNIMPLEMENTED;
651 return STATUS_NOT_IMPLEMENTED;
652 }
653
654
655 /* Function 40 */
656 NTSTATUS LsarSetTrustedDomainInfo(
657 LSAPR_HANDLE PolicyHandle,
658 PRPC_SID TrustedDomainSid,
659 TRUSTED_INFORMATION_CLASS InformationClass,
660 PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation)
661 {
662 UNIMPLEMENTED;
663 return STATUS_NOT_IMPLEMENTED;
664 }
665
666
667 /* Function 41 */
668 NTSTATUS LsarDeleteTrustedDomain(
669 LSAPR_HANDLE PolicyHandle,
670 PRPC_SID TrustedDomainSid)
671 {
672 UNIMPLEMENTED;
673 return STATUS_NOT_IMPLEMENTED;
674 }
675
676
677 /* Function 42 */
678 NTSTATUS LsarStorePrivateData(
679 LSAPR_HANDLE PolicyHandle,
680 PRPC_UNICODE_STRING KeyName,
681 PLSAPR_CR_CIPHER_VALUE EncryptedData)
682 {
683 UNIMPLEMENTED;
684 return STATUS_NOT_IMPLEMENTED;
685 }
686
687
688 /* Function 43 */
689 NTSTATUS LsarRetrievePrivateData(
690 LSAPR_HANDLE PolicyHandle,
691 PRPC_UNICODE_STRING KeyName,
692 PLSAPR_CR_CIPHER_VALUE *EncryptedData)
693 {
694 UNIMPLEMENTED;
695 return STATUS_NOT_IMPLEMENTED;
696 }
697
698
699 /* Function 44 */
700 NTSTATUS LsarOpenPolicy2(
701 LPWSTR SystemName,
702 PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes,
703 ACCESS_MASK DesiredAccess,
704 LSAPR_HANDLE *PolicyHandle)
705 {
706 UNIMPLEMENTED;
707 return STATUS_NOT_IMPLEMENTED;
708 }
709
710
711 /* Function 45 */
712 NTSTATUS LsarGetUserName(
713 LPWSTR SystemName,
714 PRPC_UNICODE_STRING *UserName,
715 PRPC_UNICODE_STRING *DomainName)
716 {
717 UNIMPLEMENTED;
718 return STATUS_NOT_IMPLEMENTED;
719 }
720
721
722 /* Function 46 */
723 NTSTATUS LsarQueryInformationPolicy2(
724 LSAPR_HANDLE PolicyHandle,
725 POLICY_INFORMATION_CLASS InformationClass,
726 unsigned long *PolicyInformation)
727 {
728 UNIMPLEMENTED;
729 return STATUS_NOT_IMPLEMENTED;
730 }
731
732
733 /* Function 47 */
734 NTSTATUS LsarSetInformationPolicy2(
735 LSAPR_HANDLE PolicyHandle,
736 POLICY_INFORMATION_CLASS InformationClass,
737 unsigned long PolicyInformation)
738 {
739 UNIMPLEMENTED;
740 return STATUS_NOT_IMPLEMENTED;
741 }
742
743
744 /* Function 48 */
745 NTSTATUS LsarQueryTrustedDomainInfoByName(
746 LSAPR_HANDLE PolicyHandle,
747 PRPC_UNICODE_STRING TrustedDomainName,
748 POLICY_INFORMATION_CLASS InformationClass,
749 unsigned long *PolicyInformation)
750 {
751 UNIMPLEMENTED;
752 return STATUS_NOT_IMPLEMENTED;
753 }
754
755
756 /* Function 49 */
757 NTSTATUS LsarSetTrustedDomainInfoByName(
758 LSAPR_HANDLE PolicyHandle,
759 PRPC_UNICODE_STRING TrustedDomainName,
760 POLICY_INFORMATION_CLASS InformationClass,
761 unsigned long PolicyInformation)
762 {
763 UNIMPLEMENTED;
764 return STATUS_NOT_IMPLEMENTED;
765 }
766
767
768 /* Function 50 */
769 NTSTATUS LsarEnumerateTrustedDomainsEx(
770 LSAPR_HANDLE PolicyHandle,
771 DWORD *EnumerationContext,
772 PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer,
773 DWORD PreferedMaximumLength)
774 {
775 UNIMPLEMENTED;
776 return STATUS_NOT_IMPLEMENTED;
777 }
778
779
780 /* Function 51 */
781 NTSTATUS LsarCreateTrustedDomainEx(
782 LSAPR_HANDLE PolicyHandle,
783 PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
784 PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthentificationInformation,
785 ACCESS_MASK DesiredAccess,
786 LSAPR_HANDLE *TrustedDomainHandle)
787 {
788 UNIMPLEMENTED;
789 return STATUS_NOT_IMPLEMENTED;
790 }
791
792
793 /* Function 52 */
794 NTSTATUS LsarSetPolicyReplicationHandle(
795 PLSAPR_HANDLE PolicyHandle)
796 {
797 /* Deprecated */
798 return STATUS_NOT_IMPLEMENTED;
799 }
800
801
802 /* Function 53 */
803 NTSTATUS LsarQueryDomainInformationPolicy(
804 LSAPR_HANDLE PolicyHandle,
805 POLICY_INFORMATION_CLASS InformationClass,
806 unsigned long *PolicyInformation)
807 {
808 UNIMPLEMENTED;
809 return STATUS_NOT_IMPLEMENTED;
810 }
811
812
813 /* Function 54 */
814 NTSTATUS LsarSetDomainInformationPolicy(
815 LSAPR_HANDLE PolicyHandle,
816 POLICY_INFORMATION_CLASS InformationClass,
817 unsigned long PolicyInformation)
818 {
819 UNIMPLEMENTED;
820 return STATUS_NOT_IMPLEMENTED;
821 }
822
823
824 /* Function 55 */
825 NTSTATUS LsarOpenTrustedDomainByName(
826 LSAPR_HANDLE PolicyHandle,
827 PRPC_UNICODE_STRING TrustedDomainName,
828 ACCESS_MASK DesiredAccess,
829 LSAPR_HANDLE *TrustedDomainHandle)
830 {
831 UNIMPLEMENTED;
832 return STATUS_NOT_IMPLEMENTED;
833 }
834
835
836 /* Function 56 */
837 NTSTATUS LsarTestCall(
838 handle_t hBinding)
839 {
840 UNIMPLEMENTED;
841 return STATUS_NOT_IMPLEMENTED;
842 }
843
844
845 /* Function 57 */
846 NTSTATUS LsarLookupSids2(
847 LSAPR_HANDLE PolicyHandle,
848 PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
849 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
850 PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
851 LSAP_LOOKUP_LEVEL LookupLevel,
852 DWORD *MappedCount,
853 DWORD LookupOptions,
854 DWORD ClientRevision)
855 {
856 UNIMPLEMENTED;
857 return STATUS_NOT_IMPLEMENTED;
858 }
859
860
861 /* Function 58 */
862 NTSTATUS LsarLookupNames2(
863 LSAPR_HANDLE PolicyHandle,
864 DWORD Count,
865 PRPC_UNICODE_STRING Names,
866 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
867 PLSAPR_TRANSLATED_SID_EX TranslatedSids,
868 LSAP_LOOKUP_LEVEL LookupLevel,
869 DWORD *MappedCount,
870 DWORD LookupOptions,
871 DWORD ClientRevision)
872 {
873 UNIMPLEMENTED;
874 return STATUS_NOT_IMPLEMENTED;
875 }
876
877
878 /* Function 59 */
879 NTSTATUS LsarCreateTrustedDomainEx2(
880 LSAPR_HANDLE PolicyHandle,
881 PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
882 PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthentificationInformation,
883 ACCESS_MASK DesiredAccess,
884 LSAPR_HANDLE *TrustedDomainHandle)
885 {
886 UNIMPLEMENTED;
887 return STATUS_NOT_IMPLEMENTED;
888 }
889
890
891 /* Function 60 */
892 NTSTATUS CredrWrite(
893 handle_t hBinding)
894 {
895 UNIMPLEMENTED;
896 return STATUS_NOT_IMPLEMENTED;
897 }
898
899
900 /* Function 61 */
901 NTSTATUS CredrRead(
902 handle_t hBinding)
903 {
904 UNIMPLEMENTED;
905 return STATUS_NOT_IMPLEMENTED;
906 }
907
908
909 /* Function 62 */
910 NTSTATUS CredrEnumerate(
911 handle_t hBinding)
912 {
913 UNIMPLEMENTED;
914 return STATUS_NOT_IMPLEMENTED;
915 }
916
917
918 /* Function 63 */
919 NTSTATUS CredrWriteDomainCredentials(
920 handle_t hBinding)
921 {
922 UNIMPLEMENTED;
923 return STATUS_NOT_IMPLEMENTED;
924 }
925
926
927 /* Function 64 */
928 NTSTATUS CredrReadDomainCredentials(
929 handle_t hBinding)
930 {
931 UNIMPLEMENTED;
932 return STATUS_NOT_IMPLEMENTED;
933 }
934
935
936 /* Function 65 */
937 NTSTATUS CredrDelete(
938 handle_t hBinding)
939 {
940 UNIMPLEMENTED;
941 return STATUS_NOT_IMPLEMENTED;
942 }
943
944
945 /* Function 66 */
946 NTSTATUS CredrGetTargetInfo(
947 handle_t hBinding)
948 {
949 UNIMPLEMENTED;
950 return STATUS_NOT_IMPLEMENTED;
951 }
952
953
954 /* Function 67 */
955 NTSTATUS CredrProfileLoaded(
956 handle_t hBinding)
957 {
958 UNIMPLEMENTED;
959 return STATUS_NOT_IMPLEMENTED;
960 }
961
962
963 /* Function 68 */
964 NTSTATUS LsarLookupNames3(
965 LSAPR_HANDLE PolicyHandle,
966 DWORD Count,
967 PRPC_UNICODE_STRING Names,
968 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
969 PLSAPR_TRANSLATED_SID_EX2 TranslatedSids,
970 LSAP_LOOKUP_LEVEL LookupLevel,
971 DWORD *MappedCount,
972 DWORD LookupOptions,
973 DWORD ClientRevision)
974 {
975 UNIMPLEMENTED;
976 return STATUS_NOT_IMPLEMENTED;
977 }
978
979
980 /* Function 69 */
981 NTSTATUS CredrGetSessionTypes(
982 handle_t hBinding)
983 {
984 UNIMPLEMENTED;
985 return STATUS_NOT_IMPLEMENTED;
986 }
987
988
989 /* Function 70 */
990 NTSTATUS LsarRegisterAuditEvent(
991 handle_t hBinding)
992 {
993 UNIMPLEMENTED;
994 return STATUS_NOT_IMPLEMENTED;
995 }
996
997
998 /* Function 71 */
999 NTSTATUS LsarGenAuditEvent(
1000 handle_t hBinding)
1001 {
1002 UNIMPLEMENTED;
1003 return STATUS_NOT_IMPLEMENTED;
1004 }
1005
1006
1007 /* Function 72 */
1008 NTSTATUS LsarUnregisterAuditEvent(
1009 handle_t hBinding)
1010 {
1011 UNIMPLEMENTED;
1012 return STATUS_NOT_IMPLEMENTED;
1013 }
1014
1015
1016 /* Function 73 */
1017 NTSTATUS LsarQueryForestTrustInformation(
1018 LSAPR_HANDLE PolicyHandle,
1019 PLSA_UNICODE_STRING TrustedDomainName,
1020 LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
1021 PLSA_FOREST_TRUST_INFORMATION *ForestTrustInfo)
1022 {
1023 UNIMPLEMENTED;
1024 return STATUS_NOT_IMPLEMENTED;
1025 }
1026
1027
1028 /* Function 74 */
1029 NTSTATUS LsarSetForestTrustInformation(
1030 LSAPR_HANDLE PolicyHandle,
1031 PLSA_UNICODE_STRING TrustedDomainName,
1032 LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType,
1033 PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo,
1034 BOOL CheckOnly,
1035 PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo)
1036 {
1037 UNIMPLEMENTED;
1038 return STATUS_NOT_IMPLEMENTED;
1039 }
1040
1041
1042 /* Function 75 */
1043 NTSTATUS CredrRename(
1044 handle_t hBinding)
1045 {
1046 UNIMPLEMENTED;
1047 return STATUS_NOT_IMPLEMENTED;
1048 }
1049
1050
1051 /* Function 76 */
1052 NTSTATUS LsarLookupSids3(
1053 LSAPR_HANDLE PolicyHandle,
1054 PLSAPR_SID_ENUM_BUFFER SidEnumBuffer,
1055 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
1056 PLSAPR_TRANSLATED_NAMES_EX TranslatedNames,
1057 LSAP_LOOKUP_LEVEL LookupLevel,
1058 DWORD *MappedCount,
1059 DWORD LookupOptions,
1060 DWORD ClientRevision)
1061 {
1062 UNIMPLEMENTED;
1063 return STATUS_NOT_IMPLEMENTED;
1064 }
1065
1066
1067 /* Function 77 */
1068 NTSTATUS LsarLookupNames4(
1069 handle_t RpcHandle,
1070 DWORD Count,
1071 PRPC_UNICODE_STRING Names,
1072 PLSAPR_REFERENCED_DOMAIN_LIST *ReferencedDomains,
1073 PLSAPR_TRANSLATED_SID_EX2 TranslatedSids,
1074 LSAP_LOOKUP_LEVEL LookupLevel,
1075 DWORD *MappedCount,
1076 DWORD LookupOptions,
1077 DWORD ClientRevision)
1078 {
1079 UNIMPLEMENTED;
1080 return STATUS_NOT_IMPLEMENTED;
1081 }
1082
1083
1084 /* Function 78 */
1085 NTSTATUS LsarOpenPolicySce(
1086 handle_t hBinding)
1087 {
1088 UNIMPLEMENTED;
1089 return STATUS_NOT_IMPLEMENTED;
1090 }
1091
1092
1093 /* Function 79 */
1094 NTSTATUS LsarAdtRegisterSecurityEventSource(
1095 handle_t hBinding)
1096 {
1097 UNIMPLEMENTED;
1098 return STATUS_NOT_IMPLEMENTED;
1099 }
1100
1101
1102 /* Function 80 */
1103 NTSTATUS LsarAdtUnregisterSecurityEventSource(
1104 handle_t hBinding)
1105 {
1106 UNIMPLEMENTED;
1107 return STATUS_NOT_IMPLEMENTED;
1108 }
1109
1110
1111 /* Function 81 */
1112 NTSTATUS LsarAdtReportSecurityEvent(
1113 handle_t hBinding)
1114 {
1115 UNIMPLEMENTED;
1116 return STATUS_NOT_IMPLEMENTED;
1117 }
1118
1119
1120 /* Function 82 */
1121 NTSTATUS CredrFindBestCredential(
1122 handle_t hBinding)
1123 {
1124 UNIMPLEMENTED;
1125 return STATUS_NOT_IMPLEMENTED;
1126 }
1127
1128
1129 /* Function 83 */
1130 NTSTATUS LsarSetAuditPolicy(
1131 handle_t hBinding)
1132 {
1133 UNIMPLEMENTED;
1134 return STATUS_NOT_IMPLEMENTED;
1135 }
1136
1137
1138 /* Function 84 */
1139 NTSTATUS LsarQueryAuditPolicy(
1140 handle_t hBinding)
1141 {
1142 UNIMPLEMENTED;
1143 return STATUS_NOT_IMPLEMENTED;
1144 }
1145
1146
1147 /* Function 85 */
1148 NTSTATUS LsarEnumerateAuditPolicy(
1149 handle_t hBinding)
1150 {
1151 UNIMPLEMENTED;
1152 return STATUS_NOT_IMPLEMENTED;
1153 }
1154
1155
1156 /* Function 86 */
1157 NTSTATUS LsarEnumerateAuditCategories(
1158 handle_t hBinding)
1159 {
1160 UNIMPLEMENTED;
1161 return STATUS_NOT_IMPLEMENTED;
1162 }
1163
1164
1165 /* Function 87 */
1166 NTSTATUS LsarEnumerateAuditSubCategories(
1167 handle_t hBinding)
1168 {
1169 UNIMPLEMENTED;
1170 return STATUS_NOT_IMPLEMENTED;
1171 }
1172
1173
1174 /* Function 88 */
1175 NTSTATUS LsarLookupAuditCategoryName(
1176 handle_t hBinding)
1177 {
1178 UNIMPLEMENTED;
1179 return STATUS_NOT_IMPLEMENTED;
1180 }
1181
1182
1183 /* Function 89 */
1184 NTSTATUS LsarLookupAuditSubCategoryName(
1185 handle_t hBinding)
1186 {
1187 UNIMPLEMENTED;
1188 return STATUS_NOT_IMPLEMENTED;
1189 }
1190
1191
1192 /* Function 90 */
1193 NTSTATUS LsarSetAuditSecurity(
1194 handle_t hBinding)
1195 {
1196 UNIMPLEMENTED;
1197 return STATUS_NOT_IMPLEMENTED;
1198 }
1199
1200
1201 /* Function 91 */
1202 NTSTATUS LsarQueryAuditSecurity(
1203 handle_t hBinding)
1204 {
1205 UNIMPLEMENTED;
1206 return STATUS_NOT_IMPLEMENTED;
1207 }
1208
1209
1210 /* Function 92 */
1211 NTSTATUS CredReadByTokenHandle(
1212 handle_t hBinding)
1213 {
1214 UNIMPLEMENTED;
1215 return STATUS_NOT_IMPLEMENTED;
1216 }
1217
1218
1219 /* Function 93 */
1220 NTSTATUS CredrRestoreCredentials(
1221 handle_t hBinding)
1222 {
1223 UNIMPLEMENTED;
1224 return STATUS_NOT_IMPLEMENTED;
1225 }
1226
1227
1228 /* Function 94 */
1229 NTSTATUS CredrBackupCredentials(
1230 handle_t hBinding)
1231 {
1232 UNIMPLEMENTED;
1233 return STATUS_NOT_IMPLEMENTED;
1234 }
1235
1236 /* EOF */