2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: Local Security Authority (LSA) Server
4 * FILE: reactos/dll/win32/lsasrv/lsarpc.h
5 * PURPOSE: RPC interface functions
7 * PROGRAMMERS: Eric Kohl
10 /* INCLUDES ****************************************************************/
14 typedef enum _LSA_DB_HANDLE_TYPE
19 } LSA_DB_HANDLE_TYPE
, *PLSA_DB_HANDLE_TYPE
;
21 typedef struct _LSA_DB_HANDLE
24 LSA_DB_HANDLE_TYPE HandleType
;
27 } LSA_DB_HANDLE
, *PLSA_DB_HANDLE
;
29 #define LSAP_DB_SIGNATURE 0x12345678
31 static RTL_CRITICAL_SECTION PolicyHandleTableLock
;
33 WINE_DEFAULT_DEBUG_CHANNEL(lsasrv
);
36 /* FUNCTIONS ***************************************************************/
39 LsapCreateDbHandle(LSA_DB_HANDLE_TYPE HandleType
,
40 ACCESS_MASK DesiredAccess
)
42 PLSA_DB_HANDLE DbHandle
;
44 // RtlEnterCriticalSection(&PolicyHandleTableLock);
46 DbHandle
= (PLSA_DB_HANDLE
)RtlAllocateHeap(RtlGetProcessHeap(),
48 sizeof(LSA_DB_HANDLE
));
51 DbHandle
->Signature
= LSAP_DB_SIGNATURE
;
52 DbHandle
->RefCount
= 1;
53 DbHandle
->HandleType
= HandleType
;
54 DbHandle
->Access
= DesiredAccess
;
57 // RtlLeaveCriticalSection(&PolicyHandleTableLock);
59 return (LSAPR_HANDLE
)DbHandle
;
64 LsapValidateDbHandle(LSAPR_HANDLE Handle
,
65 LSA_DB_HANDLE_TYPE HandleType
,
66 ACCESS_MASK GrantedAccess
)
68 PLSA_DB_HANDLE DbHandle
= (PLSA_DB_HANDLE
)Handle
;
73 if (DbHandle
->Signature
== LSAP_DB_SIGNATURE
)
75 if (HandleType
== LsaDbIgnoreHandle
)
77 else if (DbHandle
->HandleType
== HandleType
)
81 _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER
)
88 return STATUS_INVALID_HANDLE
;
90 if (GrantedAccess
!= 0)
92 /* FIXME: Check for granted access rights */
95 return STATUS_SUCCESS
;
102 LsarStartRpcServer(VOID
)
106 RtlInitializeCriticalSection(&PolicyHandleTableLock
);
108 TRACE("LsarStartRpcServer() called\n");
110 Status
= RpcServerUseProtseqEpW(L
"ncacn_np",
114 if (Status
!= RPC_S_OK
)
116 WARN("RpcServerUseProtseqEpW() failed (Status %lx)\n", Status
);
120 Status
= RpcServerRegisterIf(lsarpc_v0_0_s_ifspec
,
123 if (Status
!= RPC_S_OK
)
125 WARN("RpcServerRegisterIf() failed (Status %lx)\n", Status
);
129 Status
= RpcServerListen(1, 20, TRUE
);
130 if (Status
!= RPC_S_OK
)
132 WARN("RpcServerListen() failed (Status %lx)\n", Status
);
136 TRACE("LsarStartRpcServer() done\n");
140 void __RPC_USER
LSAPR_HANDLE_rundown(LSAPR_HANDLE hHandle
)
147 NTSTATUS WINAPI
LsarClose(
148 LSAPR_HANDLE
*ObjectHandle
)
150 NTSTATUS Status
= STATUS_SUCCESS
;
152 TRACE("0x%p\n", ObjectHandle
);
154 // RtlEnterCriticalSection(&PolicyHandleTableLock);
156 Status
= LsapValidateDbHandle(*ObjectHandle
,
160 if (Status
== STATUS_SUCCESS
)
162 RtlFreeHeap(RtlGetProcessHeap(), 0, *ObjectHandle
);
163 *ObjectHandle
= NULL
;
166 // RtlLeaveCriticalSection(&PolicyHandleTableLock);
173 NTSTATUS WINAPI
LsarDelete(
174 LSAPR_HANDLE ObjectHandle
)
177 return STATUS_NOT_SUPPORTED
;
182 NTSTATUS WINAPI
LsarEnumeratePrivileges(
183 LSAPR_HANDLE PolicyHandle
,
184 DWORD
*EnumerationContext
,
185 PLSAPR_PRIVILEGE_ENUM_BUFFER EnumerationBuffer
,
186 DWORD PreferedMaximumLength
)
189 return STATUS_NOT_IMPLEMENTED
;
194 NTSTATUS WINAPI
LsarQuerySecurityObject(
195 LSAPR_HANDLE ObjectHandle
,
196 SECURITY_INFORMATION SecurityInformation
,
197 PLSAPR_SR_SECURITY_DESCRIPTOR
*SecurityDescriptor
)
200 return STATUS_NOT_IMPLEMENTED
;
205 NTSTATUS WINAPI
LsarSetSecurityObject(
206 LSAPR_HANDLE ObjectHandle
,
207 SECURITY_INFORMATION SecurityInformation
,
208 PLSAPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor
)
211 return STATUS_NOT_IMPLEMENTED
;
216 NTSTATUS WINAPI
LsarChangePassword(
218 PRPC_UNICODE_STRING String1
,
219 PRPC_UNICODE_STRING String2
,
220 PRPC_UNICODE_STRING String3
,
221 PRPC_UNICODE_STRING String4
,
222 PRPC_UNICODE_STRING String5
)
225 return STATUS_NOT_IMPLEMENTED
;
230 NTSTATUS WINAPI
LsarOpenPolicy(
232 PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes
,
233 ACCESS_MASK DesiredAccess
,
234 LSAPR_HANDLE
*PolicyHandle
)
236 NTSTATUS Status
= STATUS_SUCCESS
;
238 TRACE("LsarOpenPolicy called!\n");
240 RtlEnterCriticalSection(&PolicyHandleTableLock
);
242 *PolicyHandle
= LsapCreateDbHandle(LsaDbPolicyHandle
,
244 if (*PolicyHandle
== NULL
)
245 Status
= STATUS_INSUFFICIENT_RESOURCES
;
247 RtlLeaveCriticalSection(&PolicyHandleTableLock
);
249 TRACE("LsarOpenPolicy done!\n");
256 NTSTATUS WINAPI
LsarQueryInformationPolicy(
257 LSAPR_HANDLE PolicyHandle
,
258 POLICY_INFORMATION_CLASS InformationClass
,
259 PLSAPR_POLICY_INFORMATION
*PolicyInformation
)
263 TRACE("LsarQueryInformationPolicy(%p,0x%08x,%p)\n",
264 PolicyHandle
, InformationClass
, PolicyInformation
);
266 if (PolicyInformation
)
268 TRACE("*PolicyInformation %p\n", *PolicyInformation
);
271 Status
= LsapValidateDbHandle(PolicyHandle
,
274 if (!NT_SUCCESS(Status
))
277 switch (InformationClass
)
279 case PolicyAuditEventsInformation
: /* 2 */
281 PLSAPR_POLICY_AUDIT_EVENTS_INFO p
= MIDL_user_allocate(sizeof(LSAPR_POLICY_AUDIT_EVENTS_INFO
));
283 return STATUS_INSUFFICIENT_RESOURCES
;
285 p
->AuditingMode
= FALSE
; /* no auditing */
286 p
->EventAuditingOptions
= NULL
;
287 p
->MaximumAuditEventCount
= 0;
289 *PolicyInformation
= (PLSAPR_POLICY_INFORMATION
)p
;
293 case PolicyPrimaryDomainInformation
: /* 3 */
295 PLSAPR_POLICY_PRIMARY_DOM_INFO p
= MIDL_user_allocate(sizeof(LSAPR_POLICY_PRIMARY_DOM_INFO
));
297 return STATUS_INSUFFICIENT_RESOURCES
;
300 p
->Name
.MaximumLength
= 0;
301 p
->Name
.Buffer
= NULL
;
303 p
->Name
.Length
= wcslen(L
"COMPUTERNAME");
304 p
->Name
.MaximumLength
= p
->Name
.Length
+ sizeof(WCHAR
);
305 p
->Name
.Buffer
= MIDL_user_allocate(p
->Name
.MaximumLength
);
306 if (p
->Name
.Buffer
== NULL
)
309 return STATUS_INSUFFICIENT_RESOURCES
;
312 wcscpy(p
->Name
.Buffer
, L
"COMPUTERNAME");
315 p
->Sid
= NULL
; /* no domain, no workgroup */
317 *PolicyInformation
= (PLSAPR_POLICY_INFORMATION
)p
;
321 case PolicyAccountDomainInformation
: /* 5 */
323 PLSAPR_POLICY_ACCOUNT_DOM_INFO p
= MIDL_user_allocate(sizeof(LSAPR_POLICY_ACCOUNT_DOM_INFO
));
325 return STATUS_INSUFFICIENT_RESOURCES
;
327 p
->DomainName
.Length
= 0;
328 p
->DomainName
.MaximumLength
= 0;
329 p
->DomainName
.Buffer
= NULL
;
331 p
->DomainName
.Length
= wcslen(L
"COMPUTERNAME");
332 p
->DomainName
.MaximumLength
= p
->DomainName
.Length
+ sizeof(WCHAR
);
333 p
->DomainName
.Buffer
= MIDL_user_allocate(p
->DomainName
.MaximumLength
);
334 if (p
->DomainName
.Buffer
== NULL
)
337 return STATUS_INSUFFICIENT_RESOURCES
;
340 wcscpy(p
->DomainName
.Buffer
, L
"COMPUTERNAME");
343 p
->Sid
= NULL
; /* no domain, no workgroup */
345 *PolicyInformation
= (PLSAPR_POLICY_INFORMATION
)p
;
349 case PolicyDnsDomainInformation
: /* 12 (0xc) */
351 PLSAPR_POLICY_DNS_DOMAIN_INFO p
= MIDL_user_allocate(sizeof(LSAPR_POLICY_DNS_DOMAIN_INFO
));
353 return STATUS_INSUFFICIENT_RESOURCES
;
356 p
->Name
.MaximumLength
= 0;
357 p
->Name
.Buffer
= NULL
;
359 p
->Name
.Length
= wcslen(L
"COMPUTERNAME");
360 p
->Name
.MaximumLength
= p
->Name
.Length
+ sizeof(WCHAR
);
361 p
->Name
.Buffer
= MIDL_user_allocate(p
->Name
.MaximumLength
);
362 if (p
->Name
.Buffer
== NULL
)
365 return STATUS_INSUFFICIENT_RESOURCES
;
368 wcscpy(p
->Name
.Buffer
, L
"COMPUTERNAME");
371 p
->DnsDomainName
.Length
= 0;
372 p
->DnsDomainName
.MaximumLength
= 0;
373 p
->DnsDomainName
.Buffer
= NULL
;
375 p
->DnsForestName
.Length
= 0;
376 p
->DnsForestName
.MaximumLength
= 0;
377 p
->DnsForestName
.Buffer
= 0;
379 memset(&p
->DomainGuid
, 0, sizeof(GUID
));
381 p
->Sid
= NULL
; /* no domain, no workgroup */
383 *PolicyInformation
= (PLSAPR_POLICY_INFORMATION
)p
;
387 case PolicyAuditLogInformation
:
388 case PolicyPdAccountInformation
:
389 case PolicyLsaServerRoleInformation
:
390 case PolicyReplicaSourceInformation
:
391 case PolicyDefaultQuotaInformation
:
392 case PolicyModificationInformation
:
393 case PolicyAuditFullSetInformation
:
394 case PolicyAuditFullQueryInformation
:
395 case PolicyEfsInformation
:
397 FIXME("category not implemented\n");
398 return STATUS_UNSUCCESSFUL
;
402 return STATUS_SUCCESS
;
407 NTSTATUS WINAPI
LsarSetInformationPolicy(
408 LSAPR_HANDLE PolicyHandle
,
409 POLICY_INFORMATION_CLASS InformationClass
,
410 PLSAPR_POLICY_INFORMATION PolicyInformation
)
413 return STATUS_NOT_IMPLEMENTED
;
418 NTSTATUS WINAPI
LsarClearAuditLog(
419 LSAPR_HANDLE ObjectHandle
)
422 return STATUS_NOT_IMPLEMENTED
;
427 NTSTATUS WINAPI
LsarCreateAccount(
428 LSAPR_HANDLE PolicyHandle
,
430 ACCESS_MASK DesiredAccess
,
431 LSAPR_HANDLE
*AccountHandle
)
434 return STATUS_NOT_IMPLEMENTED
;
439 NTSTATUS WINAPI
LsarEnumerateAccounts(
440 LSAPR_HANDLE PolicyHandle
,
441 DWORD
*EnumerationContext
,
442 PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer
,
443 DWORD PreferedMaximumLength
)
446 return STATUS_NOT_IMPLEMENTED
;
451 NTSTATUS WINAPI
LsarCreateTrustedDomain(
452 LSAPR_HANDLE PolicyHandle
,
453 PLSAPR_TRUST_INFORMATION TrustedDomainInformation
,
454 ACCESS_MASK DesiredAccess
,
455 LSAPR_HANDLE
*TrustedDomainHandle
)
458 return STATUS_NOT_IMPLEMENTED
;
463 NTSTATUS WINAPI
LsarEnumerateTrustedDomains(
464 LSAPR_HANDLE PolicyHandle
,
465 DWORD
*EnumerationContext
,
466 PLSAPR_TRUSTED_ENUM_BUFFER EnumerationBuffer
,
467 DWORD PreferedMaximumLength
)
470 return STATUS_NOT_IMPLEMENTED
;
475 NTSTATUS WINAPI
LsarLookupNames(
476 LSAPR_HANDLE PolicyHandle
,
478 PRPC_UNICODE_STRING Names
,
479 PLSAPR_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
480 PLSAPR_TRANSLATED_SIDS TranslatedSids
,
481 LSAP_LOOKUP_LEVEL LookupLevel
,
484 SID_IDENTIFIER_AUTHORITY IdentifierAuthority
= {SECURITY_NT_AUTHORITY
};
485 static const UNICODE_STRING DomainName
= RTL_CONSTANT_STRING(L
"DOMAIN");
486 PLSAPR_REFERENCED_DOMAIN_LIST OutputDomains
= NULL
;
487 PLSA_TRANSLATED_SID OutputSids
= NULL
;
488 ULONG OutputSidsLength
;
494 TRACE("LsarLookupNames(%p, %lu, %p, %p, %p, %d, %p)\n",
495 PolicyHandle
, Count
, Names
, ReferencedDomains
, TranslatedSids
,
496 LookupLevel
, MappedCount
);
498 TranslatedSids
->Entries
= Count
;
499 TranslatedSids
->Sids
= NULL
;
500 *ReferencedDomains
= NULL
;
502 OutputSidsLength
= Count
* sizeof(LSA_TRANSLATED_SID
);
503 OutputSids
= MIDL_user_allocate(OutputSidsLength
);
504 if (OutputSids
== NULL
)
506 return STATUS_INSUFFICIENT_RESOURCES
;
509 RtlZeroMemory(OutputSids
, OutputSidsLength
);
511 OutputDomains
= MIDL_user_allocate(sizeof(LSAPR_REFERENCED_DOMAIN_LIST
));
512 if (OutputDomains
== NULL
)
514 MIDL_user_free(OutputSids
);
515 return STATUS_INSUFFICIENT_RESOURCES
;
518 OutputDomains
->Entries
= Count
;
519 OutputDomains
->Domains
= MIDL_user_allocate(Count
* sizeof(LSA_TRUST_INFORMATION
));
520 if (OutputDomains
->Domains
== NULL
)
522 MIDL_user_free(OutputDomains
);
523 MIDL_user_free(OutputSids
);
524 return STATUS_INSUFFICIENT_RESOURCES
;
527 Status
= RtlAllocateAndInitializeSid(&IdentifierAuthority
,
529 SECURITY_BUILTIN_DOMAIN_RID
,
530 DOMAIN_ALIAS_RID_ADMINS
,
533 if (!NT_SUCCESS(Status
))
535 MIDL_user_free(OutputDomains
->Domains
);
536 MIDL_user_free(OutputDomains
);
537 MIDL_user_free(OutputSids
);
541 SidLength
= RtlLengthSid(Sid
);
543 for (i
= 0; i
< Count
; i
++)
545 OutputDomains
->Domains
[i
].Sid
= MIDL_user_allocate(SidLength
);
546 RtlCopyMemory(OutputDomains
->Domains
[i
].Sid
, Sid
, SidLength
);
548 OutputDomains
->Domains
[i
].Name
.Buffer
= MIDL_user_allocate(DomainName
.MaximumLength
);
549 OutputDomains
->Domains
[i
].Name
.Length
= DomainName
.Length
;
550 OutputDomains
->Domains
[i
].Name
.MaximumLength
= DomainName
.MaximumLength
;
551 RtlCopyMemory(OutputDomains
->Domains
[i
].Name
.Buffer
, DomainName
.Buffer
, DomainName
.MaximumLength
);
554 for (i
= 0; i
< Count
; i
++)
556 OutputSids
[i
].Use
= SidTypeWellKnownGroup
;
557 OutputSids
[i
].RelativeId
= DOMAIN_ALIAS_RID_ADMINS
;
558 OutputSids
[i
].DomainIndex
= i
;
561 *ReferencedDomains
= OutputDomains
;
563 *MappedCount
= Count
;
565 TranslatedSids
->Entries
= Count
;
566 TranslatedSids
->Sids
= OutputSids
;
568 return STATUS_SUCCESS
;
573 NTSTATUS WINAPI
LsarLookupSids(
574 LSAPR_HANDLE PolicyHandle
,
575 PLSAPR_SID_ENUM_BUFFER SidEnumBuffer
,
576 PLSAPR_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
577 PLSAPR_TRANSLATED_NAMES TranslatedNames
,
578 LSAP_LOOKUP_LEVEL LookupLevel
,
581 SID_IDENTIFIER_AUTHORITY IdentifierAuthority
= {SECURITY_NT_AUTHORITY
};
582 static const UNICODE_STRING DomainName
= RTL_CONSTANT_STRING(L
"DOMAIN");
583 PLSAPR_REFERENCED_DOMAIN_LIST OutputDomains
= NULL
;
584 PLSAPR_TRANSLATED_NAME OutputNames
= NULL
;
585 ULONG OutputNamesLength
;
591 TRACE("LsarLookupSids(%p, %p, %p, %p, %d, %p)\n",
592 PolicyHandle
, SidEnumBuffer
, ReferencedDomains
, TranslatedNames
,
593 LookupLevel
, MappedCount
);
595 TranslatedNames
->Entries
= SidEnumBuffer
->Entries
;
596 TranslatedNames
->Names
= NULL
;
597 *ReferencedDomains
= NULL
;
599 OutputNamesLength
= SidEnumBuffer
->Entries
* sizeof(LSA_TRANSLATED_NAME
);
600 OutputNames
= MIDL_user_allocate(OutputNamesLength
);
601 if (OutputNames
== NULL
)
603 return STATUS_INSUFFICIENT_RESOURCES
;
606 RtlZeroMemory(OutputNames
, OutputNamesLength
);
608 OutputDomains
= MIDL_user_allocate(sizeof(LSAPR_REFERENCED_DOMAIN_LIST
));
609 if (OutputDomains
== NULL
)
611 MIDL_user_free(OutputNames
);
612 return STATUS_INSUFFICIENT_RESOURCES
;
615 OutputDomains
->Entries
= SidEnumBuffer
->Entries
;
616 OutputDomains
->Domains
= MIDL_user_allocate(SidEnumBuffer
->Entries
* sizeof(LSA_TRUST_INFORMATION
));
617 if (OutputDomains
->Domains
== NULL
)
619 MIDL_user_free(OutputDomains
);
620 MIDL_user_free(OutputNames
);
621 return STATUS_INSUFFICIENT_RESOURCES
;
624 Status
= RtlAllocateAndInitializeSid(&IdentifierAuthority
,
626 SECURITY_BUILTIN_DOMAIN_RID
,
627 DOMAIN_ALIAS_RID_ADMINS
,
630 if (!NT_SUCCESS(Status
))
632 MIDL_user_free(OutputDomains
->Domains
);
633 MIDL_user_free(OutputDomains
);
634 MIDL_user_free(OutputNames
);
638 SidLength
= RtlLengthSid(Sid
);
640 for (i
= 0; i
< SidEnumBuffer
->Entries
; i
++)
642 OutputDomains
->Domains
[i
].Sid
= MIDL_user_allocate(SidLength
);
643 RtlCopyMemory(OutputDomains
->Domains
[i
].Sid
, Sid
, SidLength
);
645 OutputDomains
->Domains
[i
].Name
.Buffer
= MIDL_user_allocate(DomainName
.MaximumLength
);
646 OutputDomains
->Domains
[i
].Name
.Length
= DomainName
.Length
;
647 OutputDomains
->Domains
[i
].Name
.MaximumLength
= DomainName
.MaximumLength
;
648 RtlCopyMemory(OutputDomains
->Domains
[i
].Name
.Buffer
, DomainName
.Buffer
, DomainName
.MaximumLength
);
651 Status
= LsapLookupSids(SidEnumBuffer
,
654 *ReferencedDomains
= OutputDomains
;
656 *MappedCount
= SidEnumBuffer
->Entries
;
658 TranslatedNames
->Entries
= SidEnumBuffer
->Entries
;
659 TranslatedNames
->Names
= OutputNames
;
666 NTSTATUS WINAPI
LsarCreateSecret(
667 LSAPR_HANDLE PolicyHandle
,
668 PRPC_UNICODE_STRING SecretName
,
669 ACCESS_MASK DesiredAccess
,
670 LSAPR_HANDLE
*SecretHandle
)
673 return STATUS_NOT_IMPLEMENTED
;
678 NTSTATUS WINAPI
LsarOpenAccount(
679 LSAPR_HANDLE PolicyHandle
,
681 ACCESS_MASK DesiredAccess
,
682 LSAPR_HANDLE
*AccountHandle
)
685 return STATUS_NOT_IMPLEMENTED
;
690 NTSTATUS WINAPI
LsarEnumeratePrivilegesAccount(
691 LSAPR_HANDLE AccountHandle
,
692 PLSAPR_PRIVILEGE_SET
*Privileges
)
695 return STATUS_NOT_IMPLEMENTED
;
700 NTSTATUS WINAPI
LsarAddPrivilegesToAccount(
701 LSAPR_HANDLE AccountHandle
,
702 PLSAPR_PRIVILEGE_SET Privileges
)
705 return STATUS_NOT_IMPLEMENTED
;
710 NTSTATUS WINAPI
LsarRemovePrivilegesFromAccount(
711 LSAPR_HANDLE AccountHandle
,
713 PLSAPR_PRIVILEGE_SET Privileges
)
716 return STATUS_NOT_IMPLEMENTED
;
721 NTSTATUS WINAPI
LsarGetQuotasForAccount(
722 LSAPR_HANDLE AccountHandle
,
723 PQUOTA_LIMITS QuotaLimits
)
726 return STATUS_NOT_IMPLEMENTED
;
731 NTSTATUS WINAPI
LsarSetQuotasForAccount(
732 LSAPR_HANDLE AccountHandle
,
733 PQUOTA_LIMITS QuotaLimits
)
736 return STATUS_NOT_IMPLEMENTED
;
741 NTSTATUS WINAPI
LsarGetSystemAccessAccount(
742 LSAPR_HANDLE AccountHandle
,
743 ACCESS_MASK
*SystemAccess
)
746 return STATUS_NOT_IMPLEMENTED
;
751 NTSTATUS WINAPI
LsarSetSystemAccessAccount(
752 LSAPR_HANDLE AccountHandle
,
753 ACCESS_MASK SystemAccess
)
756 return STATUS_NOT_IMPLEMENTED
;
761 NTSTATUS WINAPI
LsarOpenTrustedDomain(
762 LSAPR_HANDLE PolicyHandle
,
763 PRPC_SID TrustedDomainSid
,
764 ACCESS_MASK DesiredAccess
,
765 LSAPR_HANDLE
*TrustedDomainHandle
)
768 return STATUS_NOT_IMPLEMENTED
;
773 NTSTATUS WINAPI
LsarQueryInfoTrustedDomain(
774 LSAPR_HANDLE TrustedDomainHandle
,
775 TRUSTED_INFORMATION_CLASS InformationClass
,
776 PLSAPR_TRUSTED_DOMAIN_INFO
*TrustedDomainInformation
)
779 return STATUS_NOT_IMPLEMENTED
;
784 NTSTATUS WINAPI
LsarSetInformationTrustedDomain(
785 LSAPR_HANDLE TrustedDomainHandle
,
786 TRUSTED_INFORMATION_CLASS InformationClass
,
787 PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation
)
790 return STATUS_NOT_IMPLEMENTED
;
795 NTSTATUS WINAPI
LsarOpenSecret(
796 LSAPR_HANDLE PolicyHandle
,
797 PRPC_UNICODE_STRING SecretName
,
798 ACCESS_MASK DesiredAccess
,
799 LSAPR_HANDLE
*SecretHandle
)
802 return STATUS_NOT_IMPLEMENTED
;
807 NTSTATUS WINAPI
LsarSetSecret(
808 LSAPR_HANDLE
*SecretHandle
,
809 PLSAPR_CR_CIPHER_VALUE EncryptedCurrentValue
,
810 PLSAPR_CR_CIPHER_VALUE EncryptedOldValue
)
813 return STATUS_NOT_IMPLEMENTED
;
818 NTSTATUS WINAPI
LsarQuerySecret(
819 LSAPR_HANDLE SecretHandle
,
820 PLSAPR_CR_CIPHER_VALUE
*EncryptedCurrentValue
,
821 PLARGE_INTEGER CurrentValueSetTime
,
822 PLSAPR_CR_CIPHER_VALUE
*EncryptedOldValue
,
823 PLARGE_INTEGER OldValueSetTime
)
826 return STATUS_NOT_IMPLEMENTED
;
831 NTSTATUS WINAPI
LsarLookupPrivilegeValue(
832 LSAPR_HANDLE PolicyHandle
,
833 PRPC_UNICODE_STRING Name
,
838 TRACE("LsarLookupPrivilegeValue(%p, %wZ, %p)\n",
839 PolicyHandle
, Name
, Value
);
841 Status
= LsapValidateDbHandle(PolicyHandle
,
844 if (!NT_SUCCESS(Status
))
846 ERR("Invalid handle (Status %lx)\n", Status
);
850 TRACE("Privilege: %wZ\n", Name
);
852 Status
= LsarpLookupPrivilegeValue((PUNICODE_STRING
)Name
,
860 NTSTATUS WINAPI
LsarLookupPrivilegeName(
861 LSAPR_HANDLE PolicyHandle
,
863 PRPC_UNICODE_STRING
*Name
)
867 TRACE("LsarLookupPrivilegeName(%p, %p, %p)\n",
868 PolicyHandle
, Value
, Name
);
870 Status
= LsapValidateDbHandle(PolicyHandle
,
873 if (!NT_SUCCESS(Status
))
875 ERR("Invalid handle\n");
879 Status
= LsarpLookupPrivilegeName(Value
, (PUNICODE_STRING
*)Name
);
886 NTSTATUS WINAPI
LsarLookupPrivilegeDisplayName(
887 LSAPR_HANDLE PolicyHandle
,
888 PRPC_UNICODE_STRING Name
,
889 USHORT ClientLanguage
,
890 USHORT ClientSystemDefaultLanguage
,
891 PRPC_UNICODE_STRING
*DisplayName
,
892 USHORT
*LanguageReturned
)
895 return STATUS_NOT_IMPLEMENTED
;
900 NTSTATUS WINAPI
LsarDeleteObject(
901 LSAPR_HANDLE
*ObjectHandle
)
904 return STATUS_NOT_IMPLEMENTED
;
909 NTSTATUS WINAPI
LsarEnumerateAccountsWithUserRight(
910 LSAPR_HANDLE PolicyHandle
,
911 PRPC_UNICODE_STRING UserRight
,
912 PLSAPR_ACCOUNT_ENUM_BUFFER EnumerationBuffer
)
915 return STATUS_NOT_IMPLEMENTED
;
920 NTSTATUS WINAPI
LsarEnmuerateAccountRights(
921 LSAPR_HANDLE PolicyHandle
,
923 PLSAPR_USER_RIGHT_SET UserRights
)
927 FIXME("(%p,%p,%p) stub\n", PolicyHandle
, AccountSid
, UserRights
);
929 Status
= LsapValidateDbHandle(PolicyHandle
,
932 if (!NT_SUCCESS(Status
))
935 UserRights
->Entries
= 0;
936 UserRights
->UserRights
= NULL
;
937 return STATUS_OBJECT_NAME_NOT_FOUND
;
942 NTSTATUS WINAPI
LsarAddAccountRights(
943 LSAPR_HANDLE PolicyHandle
,
945 PLSAPR_USER_RIGHT_SET UserRights
)
948 return STATUS_NOT_IMPLEMENTED
;
953 NTSTATUS WINAPI
LsarRemoveAccountRights(
954 LSAPR_HANDLE PolicyHandle
,
957 PLSAPR_USER_RIGHT_SET UserRights
)
960 return STATUS_NOT_IMPLEMENTED
;
965 NTSTATUS WINAPI
LsarQueryTrustedDomainInfo(
966 LSAPR_HANDLE PolicyHandle
,
967 PRPC_SID TrustedDomainSid
,
968 TRUSTED_INFORMATION_CLASS InformationClass
,
969 PLSAPR_TRUSTED_DOMAIN_INFO
*TrustedDomainInformation
)
972 return STATUS_NOT_IMPLEMENTED
;
977 NTSTATUS WINAPI
LsarSetTrustedDomainInfo(
978 LSAPR_HANDLE PolicyHandle
,
979 PRPC_SID TrustedDomainSid
,
980 TRUSTED_INFORMATION_CLASS InformationClass
,
981 PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation
)
984 return STATUS_NOT_IMPLEMENTED
;
989 NTSTATUS WINAPI
LsarDeleteTrustedDomain(
990 LSAPR_HANDLE PolicyHandle
,
991 PRPC_SID TrustedDomainSid
)
994 return STATUS_NOT_IMPLEMENTED
;
999 NTSTATUS WINAPI
LsarStorePrivateData(
1000 LSAPR_HANDLE PolicyHandle
,
1001 PRPC_UNICODE_STRING KeyName
,
1002 PLSAPR_CR_CIPHER_VALUE EncryptedData
)
1005 return STATUS_NOT_IMPLEMENTED
;
1010 NTSTATUS WINAPI
LsarRetrievePrivateData(
1011 LSAPR_HANDLE PolicyHandle
,
1012 PRPC_UNICODE_STRING KeyName
,
1013 PLSAPR_CR_CIPHER_VALUE
*EncryptedData
)
1016 return STATUS_NOT_IMPLEMENTED
;
1021 NTSTATUS WINAPI
LsarOpenPolicy2(
1023 PLSAPR_OBJECT_ATTRIBUTES ObjectAttributes
,
1024 ACCESS_MASK DesiredAccess
,
1025 LSAPR_HANDLE
*PolicyHandle
)
1028 return STATUS_NOT_IMPLEMENTED
;
1033 NTSTATUS WINAPI
LsarGetUserName(
1035 PRPC_UNICODE_STRING
*UserName
,
1036 PRPC_UNICODE_STRING
*DomainName
)
1039 return STATUS_NOT_IMPLEMENTED
;
1044 NTSTATUS WINAPI
LsarQueryInformationPolicy2(
1045 LSAPR_HANDLE PolicyHandle
,
1046 POLICY_INFORMATION_CLASS InformationClass
,
1047 unsigned long *PolicyInformation
)
1050 return STATUS_NOT_IMPLEMENTED
;
1055 NTSTATUS WINAPI
LsarSetInformationPolicy2(
1056 LSAPR_HANDLE PolicyHandle
,
1057 POLICY_INFORMATION_CLASS InformationClass
,
1058 unsigned long PolicyInformation
)
1061 return STATUS_NOT_IMPLEMENTED
;
1066 NTSTATUS WINAPI
LsarQueryTrustedDomainInfoByName(
1067 LSAPR_HANDLE PolicyHandle
,
1068 PRPC_UNICODE_STRING TrustedDomainName
,
1069 POLICY_INFORMATION_CLASS InformationClass
,
1070 unsigned long *PolicyInformation
)
1073 return STATUS_NOT_IMPLEMENTED
;
1078 NTSTATUS WINAPI
LsarSetTrustedDomainInfoByName(
1079 LSAPR_HANDLE PolicyHandle
,
1080 PRPC_UNICODE_STRING TrustedDomainName
,
1081 POLICY_INFORMATION_CLASS InformationClass
,
1082 unsigned long PolicyInformation
)
1085 return STATUS_NOT_IMPLEMENTED
;
1090 NTSTATUS WINAPI
LsarEnumerateTrustedDomainsEx(
1091 LSAPR_HANDLE PolicyHandle
,
1092 DWORD
*EnumerationContext
,
1093 PLSAPR_TRUSTED_ENUM_BUFFER_EX EnumerationBuffer
,
1094 DWORD PreferedMaximumLength
)
1097 return STATUS_NOT_IMPLEMENTED
;
1102 NTSTATUS WINAPI
LsarCreateTrustedDomainEx(
1103 LSAPR_HANDLE PolicyHandle
,
1104 PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation
,
1105 PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION AuthentificationInformation
,
1106 ACCESS_MASK DesiredAccess
,
1107 LSAPR_HANDLE
*TrustedDomainHandle
)
1110 return STATUS_NOT_IMPLEMENTED
;
1115 NTSTATUS WINAPI
LsarSetPolicyReplicationHandle(
1116 PLSAPR_HANDLE PolicyHandle
)
1119 return STATUS_NOT_IMPLEMENTED
;
1124 NTSTATUS WINAPI
LsarQueryDomainInformationPolicy(
1125 LSAPR_HANDLE PolicyHandle
,
1126 POLICY_INFORMATION_CLASS InformationClass
,
1127 unsigned long *PolicyInformation
)
1130 return STATUS_NOT_IMPLEMENTED
;
1135 NTSTATUS WINAPI
LsarSetDomainInformationPolicy(
1136 LSAPR_HANDLE PolicyHandle
,
1137 POLICY_INFORMATION_CLASS InformationClass
,
1138 unsigned long PolicyInformation
)
1141 return STATUS_NOT_IMPLEMENTED
;
1146 NTSTATUS WINAPI
LsarOpenTrustedDomainByName(
1147 LSAPR_HANDLE PolicyHandle
,
1148 PRPC_UNICODE_STRING TrustedDomainName
,
1149 ACCESS_MASK DesiredAccess
,
1150 LSAPR_HANDLE
*TrustedDomainHandle
)
1153 return STATUS_NOT_IMPLEMENTED
;
1158 NTSTATUS WINAPI
LsarTestCall(
1162 return STATUS_NOT_IMPLEMENTED
;
1167 NTSTATUS WINAPI
LsarLookupSids2(
1168 LSAPR_HANDLE PolicyHandle
,
1169 PLSAPR_SID_ENUM_BUFFER SidEnumBuffer
,
1170 PLSAPR_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
1171 PLSAPR_TRANSLATED_NAMES_EX TranslatedNames
,
1172 LSAP_LOOKUP_LEVEL LookupLevel
,
1174 DWORD LookupOptions
,
1175 DWORD ClientRevision
)
1178 return STATUS_NOT_IMPLEMENTED
;
1183 NTSTATUS WINAPI
LsarLookupNames2(
1184 LSAPR_HANDLE PolicyHandle
,
1186 PRPC_UNICODE_STRING Names
,
1187 PLSAPR_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
1188 PLSAPR_TRANSLATED_SID_EX TranslatedSids
,
1189 LSAP_LOOKUP_LEVEL LookupLevel
,
1191 DWORD LookupOptions
,
1192 DWORD ClientRevision
)
1195 return STATUS_NOT_IMPLEMENTED
;
1200 NTSTATUS WINAPI
LsarCreateTrustedDomainEx2(
1201 LSAPR_HANDLE PolicyHandle
,
1202 PLSAPR_TRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation
,
1203 PLSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION_INTERNAL AuthentificationInformation
,
1204 ACCESS_MASK DesiredAccess
,
1205 LSAPR_HANDLE
*TrustedDomainHandle
)
1208 return STATUS_NOT_IMPLEMENTED
;
1213 NTSTATUS WINAPI
CredrWrite(
1217 return STATUS_NOT_IMPLEMENTED
;
1222 NTSTATUS WINAPI
CredrRead(
1226 return STATUS_NOT_IMPLEMENTED
;
1231 NTSTATUS WINAPI
CredrEnumerate(
1235 return STATUS_NOT_IMPLEMENTED
;
1240 NTSTATUS WINAPI
CredrWriteDomainCredentials(
1244 return STATUS_NOT_IMPLEMENTED
;
1249 NTSTATUS WINAPI
CredrReadDomainCredentials(
1253 return STATUS_NOT_IMPLEMENTED
;
1258 NTSTATUS WINAPI
CredrDelete(
1262 return STATUS_NOT_IMPLEMENTED
;
1267 NTSTATUS WINAPI
CredrGetTargetInfo(
1271 return STATUS_NOT_IMPLEMENTED
;
1276 NTSTATUS WINAPI
CredrProfileLoaded(
1280 return STATUS_NOT_IMPLEMENTED
;
1285 NTSTATUS WINAPI
LsarLookupNames3(
1286 LSAPR_HANDLE PolicyHandle
,
1288 PRPC_UNICODE_STRING Names
,
1289 PLSAPR_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
1290 PLSAPR_TRANSLATED_SID_EX2 TranslatedSids
,
1291 LSAP_LOOKUP_LEVEL LookupLevel
,
1293 DWORD LookupOptions
,
1294 DWORD ClientRevision
)
1297 return STATUS_NOT_IMPLEMENTED
;
1302 NTSTATUS WINAPI
CredrGetSessionTypes(
1306 return STATUS_NOT_IMPLEMENTED
;
1311 NTSTATUS WINAPI
LsarRegisterAuditEvent(
1315 return STATUS_NOT_IMPLEMENTED
;
1320 NTSTATUS WINAPI
LsarGenAuditEvent(
1324 return STATUS_NOT_IMPLEMENTED
;
1329 NTSTATUS WINAPI
LsarUnregisterAuditEvent(
1333 return STATUS_NOT_IMPLEMENTED
;
1338 NTSTATUS WINAPI
LsarQueryForestTrustInformation(
1339 LSAPR_HANDLE PolicyHandle
,
1340 PLSA_UNICODE_STRING TrustedDomainName
,
1341 LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType
,
1342 PLSA_FOREST_TRUST_INFORMATION
*ForestTrustInfo
)
1345 return STATUS_NOT_IMPLEMENTED
;
1350 NTSTATUS WINAPI
LsarSetForestTrustInformation(
1351 LSAPR_HANDLE PolicyHandle
,
1352 PLSA_UNICODE_STRING TrustedDomainName
,
1353 LSA_FOREST_TRUST_RECORD_TYPE HighestRecordType
,
1354 PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo
,
1356 PLSA_FOREST_TRUST_COLLISION_INFORMATION
*CollisionInfo
)
1359 return STATUS_NOT_IMPLEMENTED
;
1364 NTSTATUS WINAPI
CredrRename(
1368 return STATUS_NOT_IMPLEMENTED
;
1373 NTSTATUS WINAPI
LsarLookupSids3(
1374 LSAPR_HANDLE PolicyHandle
,
1375 PLSAPR_SID_ENUM_BUFFER SidEnumBuffer
,
1376 PLSAPR_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
1377 PLSAPR_TRANSLATED_NAMES_EX TranslatedNames
,
1378 LSAP_LOOKUP_LEVEL LookupLevel
,
1380 DWORD LookupOptions
,
1381 DWORD ClientRevision
)
1384 return STATUS_NOT_IMPLEMENTED
;
1389 NTSTATUS WINAPI
LsarLookupNames4(
1392 PRPC_UNICODE_STRING Names
,
1393 PLSAPR_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
1394 PLSAPR_TRANSLATED_SID_EX2 TranslatedSids
,
1395 LSAP_LOOKUP_LEVEL LookupLevel
,
1397 DWORD LookupOptions
,
1398 DWORD ClientRevision
)
1401 return STATUS_NOT_IMPLEMENTED
;
1406 NTSTATUS WINAPI
LsarOpenPolicySce(
1410 return STATUS_NOT_IMPLEMENTED
;
1415 NTSTATUS WINAPI
LsarAdtRegisterSecurityEventSource(
1419 return STATUS_NOT_IMPLEMENTED
;
1424 NTSTATUS WINAPI
LsarAdtUnregisterSecurityEventSource(
1428 return STATUS_NOT_IMPLEMENTED
;
1433 NTSTATUS WINAPI
LsarAdtReportSecurityEvent(
1437 return STATUS_NOT_IMPLEMENTED
;
1442 NTSTATUS WINAPI
CredrFindBestCredential(
1446 return STATUS_NOT_IMPLEMENTED
;
1451 NTSTATUS WINAPI
LsarSetAuditPolicy(
1455 return STATUS_NOT_IMPLEMENTED
;
1460 NTSTATUS WINAPI
LsarQueryAuditPolicy(
1464 return STATUS_NOT_IMPLEMENTED
;
1469 NTSTATUS WINAPI
LsarEnumerateAuditPolicy(
1473 return STATUS_NOT_IMPLEMENTED
;
1478 NTSTATUS WINAPI
LsarEnumerateAuditCategories(
1482 return STATUS_NOT_IMPLEMENTED
;
1487 NTSTATUS WINAPI
LsarEnumerateAuditSubCategories(
1491 return STATUS_NOT_IMPLEMENTED
;
1496 NTSTATUS WINAPI
LsarLookupAuditCategoryName(
1500 return STATUS_NOT_IMPLEMENTED
;
1505 NTSTATUS WINAPI
LsarLookupAuditSubCategoryName(
1509 return STATUS_NOT_IMPLEMENTED
;
1514 NTSTATUS WINAPI
LsarSetAuditSecurity(
1518 return STATUS_NOT_IMPLEMENTED
;
1523 NTSTATUS WINAPI
LsarQueryAuditSecurity(
1527 return STATUS_NOT_IMPLEMENTED
;
1532 NTSTATUS WINAPI
CredReadByTokenHandle(
1536 return STATUS_NOT_IMPLEMENTED
;
1541 NTSTATUS WINAPI
CredrRestoreCredentials(
1545 return STATUS_NOT_IMPLEMENTED
;
1550 NTSTATUS WINAPI
CredrBackupCredentials(
1554 return STATUS_NOT_IMPLEMENTED
;