3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: lib/advapi32/sec/lsa.c
6 * PURPOSE: Local security authority functions
7 * PROGRAMMER: Emanuele Aliberti
11 * 20030202 KJK compressed stubs
22 #ifndef SID_REVISION /* FIXME - Winnt.h */
23 #define SID_REVISION (1) /* Current revision */
31 LsaClose(LSA_HANDLE ObjectHandle
)
33 DPRINT1("(%p):LsaClose stub\n",ObjectHandle
);
43 LSA_HANDLE PolicyHandle
,
45 PLSA_UNICODE_STRING UserRights
,
48 return STATUS_NOT_IMPLEMENTED
;
56 LsaCreateTrustedDomainEx(
57 LSA_HANDLE PolicyHandle
,
58 PTRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation
,
59 PTRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation
,
60 ACCESS_MASK DesiredAccess
,
61 PLSA_HANDLE TrustedDomainHandle
)
63 return STATUS_NOT_IMPLEMENTED
;
71 LsaDeleteTrustedDomain(
72 LSA_HANDLE PolicyHandle
,
73 PSID TrustedDomainSid
)
75 return STATUS_NOT_IMPLEMENTED
;
83 LsaEnumerateAccountRights(
84 LSA_HANDLE PolicyHandle
,
86 PLSA_UNICODE_STRING
*UserRights
,
89 return STATUS_NOT_IMPLEMENTED
;
97 LsaEnumerateAccountsWithUserRight(
98 LSA_HANDLE PolicyHandle
,
99 OPTIONAL PLSA_UNICODE_STRING UserRights
,
100 PVOID
*EnumerationBuffer
,
101 PULONG CountReturned
)
103 return STATUS_NOT_IMPLEMENTED
;
111 LsaEnumerateTrustedDomains(
112 LSA_HANDLE PolicyHandle
,
113 PLSA_ENUMERATION_HANDLE EnumerationContext
,
115 ULONG PreferedMaximumLength
,
116 PULONG CountReturned
)
118 return STATUS_NOT_IMPLEMENTED
;
126 LsaEnumerateTrustedDomainsEx(
127 LSA_HANDLE PolicyHandle
,
128 PLSA_ENUMERATION_HANDLE EnumerationContext
,
130 ULONG PreferedMaximumLength
,
131 PULONG CountReturned
)
133 return STATUS_NOT_IMPLEMENTED
;
140 LsaFreeMemory(PVOID Buffer
)
142 return RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer
);
151 LSA_HANDLE PolicyHandle
,
153 PLSA_UNICODE_STRING Names
,
154 PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
155 PLSA_TRANSLATED_SID
*Sids
)
157 return STATUS_NOT_IMPLEMENTED
;
166 LSA_HANDLE PolicyHandle
,
169 PLSA_UNICODE_STRING Names
,
170 PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
171 PLSA_TRANSLATED_SID2
*Sids
)
173 return STATUS_NOT_IMPLEMENTED
;
182 LSA_HANDLE PolicyHandle
,
185 PLSA_REFERENCED_DOMAIN_LIST
*ReferencedDomains
,
186 PLSA_TRANSLATED_NAME
*Names
)
188 return STATUS_NOT_IMPLEMENTED
;
191 /******************************************************************************
192 * LsaNtStatusToWinError
200 LsaNtStatusToWinError(NTSTATUS Status
)
202 return RtlNtStatusToDosError(Status
);
205 /******************************************************************************
217 LsaOpenPolicy(PLSA_UNICODE_STRING lsaucs
,
218 PLSA_OBJECT_ATTRIBUTES lsaoa
,
220 PLSA_HANDLE PolicyHandle
)
222 DPRINT1("LsaOpenPolicy - stub\n");
223 return STATUS_SUCCESS
;
231 LsaOpenTrustedDomainByName(
232 LSA_HANDLE PolicyHandle
,
233 PLSA_UNICODE_STRING TrustedDomainName
,
234 ACCESS_MASK DesiredAccess
,
235 PLSA_HANDLE TrustedDomainHandle
)
237 return STATUS_NOT_IMPLEMENTED
;
245 LsaQueryDomainInformationPolicy(
246 LSA_HANDLE PolicyHandle
,
247 POLICY_DOMAIN_INFORMATION_CLASS pic
,
250 return STATUS_NOT_IMPLEMENTED
;
258 LsaQueryForestTrustInformation(
259 LSA_HANDLE PolicyHandle
,
260 PLSA_UNICODE_STRING TrustedDomainName
,
261 PLSA_FOREST_TRUST_INFORMATION
* ForestTrustInfo
)
263 return STATUS_NOT_IMPLEMENTED
;
270 LsaQueryInformationPolicy(LSA_HANDLE PolicyHandle
,
271 POLICY_INFORMATION_CLASS pic
,
274 DPRINT1("(%p,0x%08x,%p):LsaQueryInformationPolicy stub\n",
275 PolicyHandle
, pic
, Buffer
);
282 case PolicyAuditEventsInformation
: /* 2 */
284 PPOLICY_AUDIT_EVENTS_INFO p
= RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(POLICY_AUDIT_EVENTS_INFO
));
285 p
->AuditingMode
= FALSE
; /* no auditing */
289 case PolicyPrimaryDomainInformation
: /* 3 */
290 case PolicyAccountDomainInformation
: /* 5 */
293 { POLICY_PRIMARY_DOMAIN_INFO ppdi
;
296 SID_IDENTIFIER_AUTHORITY localSidAuthority
= {SECURITY_NT_AUTHORITY
};
298 struct di
* xdi
= RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY
, sizeof(xdi
));
300 BOOL useDefault
= TRUE
;
303 if ((ret
= RegOpenKeyExA(HKEY_LOCAL_MACHINE
,
304 "System\\CurrentControlSet\\Services\\VxD\\VNETSUP", 0,
305 KEY_READ
, &key
)) == ERROR_SUCCESS
)
308 WCHAR wg
[] = { 'W','o','r','k','g','r','o','u','p',0 };
310 ret
= RegQueryValueExW(key
, wg
, NULL
, NULL
, NULL
, &size
);
311 if (ret
== ERROR_MORE_DATA
|| ret
== ERROR_SUCCESS
)
313 xdi
->ppdi
.Name
.Buffer
= RtlAllocateHeap(RtlGetProcessHeap(),
314 HEAP_ZERO_MEMORY
, size
);
315 if ((ret
= RegQueryValueExW(key
, wg
, NULL
, NULL
,
316 (LPBYTE
)xdi
->ppdi
.Name
.Buffer
, &size
)) == ERROR_SUCCESS
)
318 xdi
->ppdi
.Name
.Length
= (USHORT
)size
;
323 RtlFreeHeap(RtlGetProcessHeap(), 0, xdi
->ppdi
.Name
.Buffer
);
324 xdi
->ppdi
.Name
.Buffer
= NULL
;
330 RtlCreateUnicodeStringFromAsciiz(&(xdi
->ppdi
.Name
), "DOMAIN");
331 DPRINT1("setting domain to \n");
333 xdi
->ppdi
.Sid
= &(xdi
->sid
);
334 xdi
->sid
.Revision
= SID_REVISION
;
335 xdi
->sid
.SubAuthorityCount
= 1;
336 xdi
->sid
.IdentifierAuthority
= localSidAuthority
;
337 xdi
->sid
.SubAuthority
[0] = SECURITY_LOCAL_SYSTEM_RID
;
341 case PolicyAuditLogInformation
:
342 case PolicyPdAccountInformation
:
343 case PolicyLsaServerRoleInformation
:
344 case PolicyReplicaSourceInformation
:
345 case PolicyDefaultQuotaInformation
:
346 case PolicyModificationInformation
:
347 case PolicyAuditFullSetInformation
:
348 case PolicyAuditFullQueryInformation
:
349 case PolicyDnsDomainInformation
:
350 case PolicyEfsInformation
:
352 DPRINT1("category not implemented\n");
364 LsaQueryTrustedDomainInfoByName(
365 LSA_HANDLE PolicyHandle
,
366 PLSA_UNICODE_STRING TrustedDomainName
,
367 TRUSTED_INFORMATION_CLASS pic
,
370 return STATUS_NOT_IMPLEMENTED
;
378 LsaQueryTrustedDomainInfo(
379 LSA_HANDLE PolicyHandle
,
380 PSID TrustedDomainSid
,
381 TRUSTED_INFORMATION_CLASS pic
,
384 return STATUS_NOT_IMPLEMENTED
;
392 LsaRemoveAccountRights(
393 LSA_HANDLE PolicyHandle
,
396 PLSA_UNICODE_STRING UserRights
,
399 return STATUS_NOT_IMPLEMENTED
;
407 LsaRetrievePrivateData(
408 LSA_HANDLE PolicyHandle
,
409 PLSA_UNICODE_STRING KeyName
,
410 PLSA_UNICODE_STRING
*PrivateData
)
412 return STATUS_NOT_IMPLEMENTED
;
420 LsaSetDomainInformationPolicy(
421 LSA_HANDLE PolicyHandle
,
422 POLICY_DOMAIN_INFORMATION_CLASS pic
,
425 return STATUS_NOT_IMPLEMENTED
;
433 LsaSetInformationPolicy(
434 LSA_HANDLE PolicyHandle
,
435 POLICY_INFORMATION_CLASS pic
,
438 return STATUS_NOT_IMPLEMENTED
;
446 LsaSetForestTrustInformation(
447 LSA_HANDLE PolicyHandle
,
448 PLSA_UNICODE_STRING TrustedDomainName
,
449 PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo
,
451 PLSA_FOREST_TRUST_COLLISION_INFORMATION
*CollisionInfo
)
453 return STATUS_NOT_IMPLEMENTED
;
461 LsaSetTrustedDomainInfoByName(
462 LSA_HANDLE PolicyHandle
,
463 PLSA_UNICODE_STRING TrustedDomainName
,
464 TRUSTED_INFORMATION_CLASS pic
,
467 return STATUS_NOT_IMPLEMENTED
;
475 LsaSetTrustedDomainInformation(
476 LSA_HANDLE PolicyHandle
,
477 PSID TrustedDomainSid
,
478 TRUSTED_INFORMATION_CLASS pic
,
481 return STATUS_NOT_IMPLEMENTED
;
490 LSA_HANDLE PolicyHandle
,
491 PLSA_UNICODE_STRING KeyName
,
492 PLSA_UNICODE_STRING PrivateData
)
494 return STATUS_NOT_IMPLEMENTED
;