-/* $Id: reg.c,v 1.46 2004/04/03 13:12:43 gvg Exp $
+/* $Id: reg.c,v 1.47 2004/06/17 09:07:12 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
/* PROTOTYPES ***************************************************************/
-static NTSTATUS MapDefaultKey (PHKEY ParentKey, HKEY Key);
+static NTSTATUS MapDefaultKey (PHANDLE ParentKey, HKEY Key);
static VOID CloseDefaultKeys(VOID);
static NTSTATUS OpenClassesRootKey(PHANDLE KeyHandle);
static NTSTATUS
-MapDefaultKey (PHKEY RealKey,
+MapDefaultKey (PHANDLE RealKey,
HKEY Key)
{
PHANDLE Handle;
if (((ULONG)Key & 0xF0000000) != 0x80000000)
{
- *RealKey = Key;
+ *RealKey = (HANDLE)Key;
return STATUS_SUCCESS;
}
if (NT_SUCCESS(Status))
{
- *RealKey = (HKEY)*Handle;
+ *RealKey = *Handle;
}
return Status;
UNICODE_STRING SubKeyString;
UNICODE_STRING ClassString;
OBJECT_ATTRIBUTES Attributes;
- HKEY ParentKey;
+ HANDLE ParentKey;
LONG ErrorCode;
NTSTATUS Status;
OBJ_CASE_INSENSITIVE,
(HANDLE)ParentKey,
(PSECURITY_DESCRIPTOR)lpSecurityAttributes);
- Status = NtCreateKey (phkResult,
+ Status = NtCreateKey ((PHANDLE)phkResult,
samDesired,
&Attributes,
0,
UNICODE_STRING SubKeyString;
UNICODE_STRING ClassString;
OBJECT_ATTRIBUTES Attributes;
- HKEY ParentKey;
+ HANDLE ParentKey;
LONG ErrorCode;
NTSTATUS Status;
OBJ_CASE_INSENSITIVE,
(HANDLE)ParentKey,
(PSECURITY_DESCRIPTOR)lpSecurityAttributes);
- Status = NtCreateKey (phkResult,
+ Status = NtCreateKey ((PHANDLE)phkResult,
samDesired,
&Attributes,
0,
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING SubKeyName;
- HKEY ParentKey;
+ HANDLE ParentKey;
HANDLE TargetKey;
NTSTATUS Status;
LONG ErrorCode;
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING SubKeyName;
- HKEY ParentKey;
+ HANDLE ParentKey;
HANDLE TargetKey;
NTSTATUS Status;
LONG ErrorCode;
LPCSTR lpValueName)
{
UNICODE_STRING ValueName;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode;
NTSTATUS Status;
UNICODE_STRING ValueName;
NTSTATUS Status;
LONG ErrorCode;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
Status = MapDefaultKey (&KeyHandle,
hKey);
DWORD ClassLength;
DWORD BufferSize;
DWORD ResultSize;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
NTSTATUS Status;
DPRINT("RegEnumKeyExA(hKey 0x%x, dwIndex %d, lpName 0x%x, *lpcbName %d, lpClass 0x%x, lpcbClass %d)\n",
ULONG ResultSize;
ULONG NameLength;
ULONG ClassLength;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode = ERROR_SUCCESS;
NTSTATUS Status;
ULONG BufferSize;
ULONG DataLength;
ULONG ResultSize;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode;
NTSTATUS Status;
UNICODE_STRING StringU;
ULONG BufferSize;
ULONG DataLength;
ULONG ResultSize;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode;
NTSTATUS Status;
LONG STDCALL
RegFlushKey(HKEY hKey)
{
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode;
NTSTATUS Status;
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING SubKeyString;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode;
NTSTATUS Status;
OBJ_CASE_INSENSITIVE,
KeyHandle,
NULL);
- Status = NtOpenKey (phkResult,
+ Status = NtOpenKey ((PHANDLE)phkResult,
MAXIMUM_ALLOWED,
&ObjectAttributes);
RtlFreeUnicodeString (&SubKeyString);
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING SubKeyString;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode;
NTSTATUS Status;
OBJ_CASE_INSENSITIVE,
KeyHandle,
NULL);
- Status = NtOpenKey (phkResult,
+ Status = NtOpenKey ((PHANDLE)phkResult,
MAXIMUM_ALLOWED,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING SubKeyString;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode;
NTSTATUS Status;
OBJ_CASE_INSENSITIVE,
KeyHandle,
NULL);
- Status = NtOpenKey (phkResult,
+ Status = NtOpenKey ((PHANDLE)phkResult,
samDesired,
&ObjectAttributes);
RtlFreeUnicodeString (&SubKeyString);
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING SubKeyString;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode;
NTSTATUS Status;
OBJ_CASE_INSENSITIVE,
KeyHandle,
NULL);
- Status = NtOpenKey (phkResult,
+ Status = NtOpenKey ((PHANDLE)phkResult,
samDesired,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
PKEY_FULL_INFORMATION FullInfo;
ULONG FullInfoSize;
ULONG ClassLength;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
NTSTATUS Status;
LONG ErrorCode = ERROR_SUCCESS;
ULONG Length;
NULL,
NULL,
&val_list[i].ve_valuelen);
- if(ErrorCode != ERROR_SUCCESS)
+ if (ErrorCode != ERROR_SUCCESS)
{
return ErrorCode;
}
- if(lpValueBuf != NULL && *ldwTotsize + val_list[i].ve_valuelen <= maxBytes)
+ if (lpValueBuf != NULL && *ldwTotsize + val_list[i].ve_valuelen <= maxBytes)
{
ErrorCode = RegQueryValueExW (hKey,
val_list[i].ve_valuename,
LONG ErrorCode = ERROR_SUCCESS;
ULONG BufferSize;
ULONG ResultSize;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
ULONG MaxCopy = lpcbData ? *lpcbData : 0;
DPRINT("hKey 0x%X lpValueName %S lpData 0x%X lpcbData %d\n",
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING SubKeyString;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
HANDLE RealKey;
LONG ErrorCode;
BOOL CloseRealKey;
UNICODE_STRING FileName;
IO_STATUS_BLOCK IoStatusBlock;
HANDLE FileHandle;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
NTSTATUS Status;
LONG ErrorCode;
SECURITY_INFORMATION SecurityInformation,
PSECURITY_DESCRIPTOR pSecurityDescriptor)
{
- HKEY KeyHandle;
+ HANDLE KeyHandle;
LONG ErrorCode;
NTSTATUS Status;
{
UNICODE_STRING ValueName;
PUNICODE_STRING pValueName;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
NTSTATUS Status;
LONG ErrorCode;
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING SubKeyString;
- HKEY KeyHandle;
+ HANDLE KeyHandle;
HANDLE RealKey;
LONG ErrorCode;
BOOL CloseRealKey;
-/* $Id: lsa.c,v 1.10 2004/03/08 18:09:05 sedwards Exp $
+/* $Id: lsa.c,v 1.11 2004/06/17 09:07:12 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
*
*/
+#define NTOS_MODE_USER
+#include <ntos.h>
#include <windows.h>
-#include <ddk/ntddk.h>
#include <ntsecapi.h>
-#include <debug.h>
-
-/******************************************************************************
- * LsaNtStatusToWinError [ADVAPI32.@]
- *
- * PARAMS
- * Status [I]
- *
- * @implemented
- */
-ULONG WINAPI
-LsaNtStatusToWinError(NTSTATUS Status)
-{
- return RtlNtStatusToDosError(Status);
-}
+#define NDEBUG
+#include <debug.h>
-/******************************************************************************
- * LsaOpenPolicy [ADVAPI32.@]
- *
- * PARAMS
- * x1 []
- * x2 []
- * x3 []
- * x4 []
- *
- * @unimplemented
- */
-NTSTATUS STDCALL
-LsaOpenPolicy (PLSA_UNICODE_STRING lsaucs,
- PLSA_OBJECT_ATTRIBUTES lsaoa,
- ACCESS_MASK access,
- PLSA_HANDLE lsah)
-{
- DPRINT1("LsaOpenPolicy - stub\n");
- return STATUS_SUCCESS;
-}
#ifndef SID_REVISION /* FIXME - Winnt.h */
-#define SID_REVISION (1) /* Current revision */
+#define SID_REVISION (1) /* Current revision */
#endif
-/*
- * @unimplemented
- */
-NTSTATUS
-STDCALL
-LsaQueryInformationPolicy(LSA_HANDLE lsah,POLICY_INFORMATION_CLASS pic,PVOID* Buffer)
-{
- DPRINT1("(%p,0x%08x,%p):LsaQueryInformationPolicy stub\n",
- lsah, pic, Buffer);
-
- if(!Buffer) return FALSE;
- switch (pic)
- {
- case PolicyAuditEventsInformation: /* 2 */
- {
- PPOLICY_AUDIT_EVENTS_INFO p = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(POLICY_AUDIT_EVENTS_INFO));
- p->AuditingMode = FALSE; /* no auditing */
- *Buffer = p;
- }
- break;
- case PolicyPrimaryDomainInformation: /* 3 */
- case PolicyAccountDomainInformation: /* 5 */
- {
- struct di
- { POLICY_PRIMARY_DOMAIN_INFO ppdi;
- SID sid;
- };
- SID_IDENTIFIER_AUTHORITY localSidAuthority = {SECURITY_NT_AUTHORITY};
-
- struct di * xdi = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(xdi));
- HKEY key;
- BOOL useDefault = TRUE;
- LONG ret;
-
- if ((ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
- "System\\CurrentControlSet\\Services\\VxD\\VNETSUP", 0,
- KEY_READ, &key)) == ERROR_SUCCESS)
- {
- DWORD size = 0;
- WCHAR wg[] = { 'W','o','r','k','g','r','o','u','p',0 };
-
- ret = RegQueryValueExW(key, wg, NULL, NULL, NULL, &size);
- if (ret == ERROR_MORE_DATA || ret == ERROR_SUCCESS)
- {
- xdi->ppdi.Name.Buffer = RtlAllocateHeap(RtlGetProcessHeap(),
- HEAP_ZERO_MEMORY, size);
- if ((ret = RegQueryValueExW(key, wg, NULL, NULL,
- (LPBYTE)xdi->ppdi.Name.Buffer, &size)) == ERROR_SUCCESS)
- {
- xdi->ppdi.Name.Length = (USHORT)size;
- useDefault = FALSE;
- }
- else
- {
- RtlFreeHeap(RtlGetProcessHeap(), 0, xdi->ppdi.Name.Buffer);
- xdi->ppdi.Name.Buffer = NULL;
- }
- }
- RegCloseKey(key);
- }
- if (useDefault)
- RtlCreateUnicodeStringFromAsciiz(&(xdi->ppdi.Name), "DOMAIN");
- DPRINT1("setting domain to \n");
-
- xdi->ppdi.Sid = &(xdi->sid);
- xdi->sid.Revision = SID_REVISION;
- xdi->sid.SubAuthorityCount = 1;
- xdi->sid.IdentifierAuthority = localSidAuthority;
- xdi->sid.SubAuthority[0] = SECURITY_LOCAL_SYSTEM_RID;
- *Buffer = xdi;
- }
- break;
- case PolicyAuditLogInformation:
- case PolicyPdAccountInformation:
- case PolicyLsaServerRoleInformation:
- case PolicyReplicaSourceInformation:
- case PolicyDefaultQuotaInformation:
- case PolicyModificationInformation:
- case PolicyAuditFullSetInformation:
- case PolicyAuditFullQueryInformation:
- case PolicyDnsDomainInformation:
- {
- DPRINT1("category not implemented\n");
- return FALSE;
- }
- }
- return TRUE;
-}
-
-/*
- * @implemented
- */
-NTSTATUS STDCALL
-LsaFreeMemory (PVOID pv)
-{
- return RtlFreeHeap(RtlGetProcessHeap(), 0, pv);
-}
/*
* @unimplemented
NTSTATUS STDCALL
LsaClose(LSA_HANDLE ObjectHandle)
{
- DPRINT1("(%p):LsaClose stub\n",ObjectHandle);
- return 0xc0000000;
+ DPRINT1("(%p):LsaClose stub\n",ObjectHandle);
+ return 0xc0000000;
}
/*
NTSTATUS
STDCALL
LsaAddAccountRights(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PSID AccountSid,
PLSA_UNICODE_STRING UserRights,
- ULONG CountOfRights
- )
+ ULONG CountOfRights)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaCreateTrustedDomainEx(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PTRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation,
PTRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation,
ACCESS_MASK DesiredAccess,
- PLSA_HANDLE TrustedDomainHandle
- )
+ PLSA_HANDLE TrustedDomainHandle)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaDeleteTrustedDomain(
- LSA_HANDLE lsah,
- PSID TrustedDomainSid
- )
+ LSA_HANDLE PolicyHandle,
+ PSID TrustedDomainSid)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaEnumerateAccountRights(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PSID AccountSid,
PLSA_UNICODE_STRING *UserRights,
- PULONG CountOfRights
- )
+ PULONG CountOfRights)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaEnumerateAccountsWithUserRight(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
OPTIONAL PLSA_UNICODE_STRING UserRights,
PVOID *EnumerationBuffer,
- PULONG CountReturned
- )
+ PULONG CountReturned)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaEnumerateTrustedDomains(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PLSA_ENUMERATION_HANDLE EnumerationContext,
PVOID *Buffer,
ULONG PreferedMaximumLength,
- PULONG CountReturned
- )
+ PULONG CountReturned)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaEnumerateTrustedDomainsEx(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PLSA_ENUMERATION_HANDLE EnumerationContext,
PVOID *Buffer,
ULONG PreferedMaximumLength,
- PULONG CountReturned
- )
+ PULONG CountReturned)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @implemented
+ */
+NTSTATUS STDCALL
+LsaFreeMemory(PVOID Buffer)
+{
+ return RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer);
}
/*
NTSTATUS
STDCALL
LsaLookupNames(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
ULONG Count,
PLSA_UNICODE_STRING Names,
PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
- PLSA_TRANSLATED_SID *Sids
- )
+ PLSA_TRANSLATED_SID *Sids)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaLookupNames2(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
ULONG Flags,
ULONG Count,
PLSA_UNICODE_STRING Names,
PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
- PLSA_TRANSLATED_SID2 *Sids
- )
+ PLSA_TRANSLATED_SID2 *Sids)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaLookupSids(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
ULONG Count,
PSID *Sids,
PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
- PLSA_TRANSLATED_NAME *Names
- )
+ PLSA_TRANSLATED_NAME *Names)
+{
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/******************************************************************************
+ * LsaNtStatusToWinError
+ *
+ * PARAMS
+ * Status [I]
+ *
+ * @implemented
+ */
+ULONG STDCALL
+LsaNtStatusToWinError(NTSTATUS Status)
{
- return(FALSE);
+ return RtlNtStatusToDosError(Status);
+}
+
+/******************************************************************************
+ * LsaOpenPolicy
+ *
+ * PARAMS
+ * x1 []
+ * x2 []
+ * x3 []
+ * x4 []
+ *
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+LsaOpenPolicy(PLSA_UNICODE_STRING lsaucs,
+ PLSA_OBJECT_ATTRIBUTES lsaoa,
+ ACCESS_MASK access,
+ PLSA_HANDLE PolicyHandle)
+{
+ DPRINT1("LsaOpenPolicy - stub\n");
+ return STATUS_SUCCESS;
}
/*
NTSTATUS
STDCALL
LsaOpenTrustedDomainByName(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PLSA_UNICODE_STRING TrustedDomainName,
ACCESS_MASK DesiredAccess,
- PLSA_HANDLE TrustedDomainHandle
- )
+ PLSA_HANDLE TrustedDomainHandle)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaQueryDomainInformationPolicy(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
POLICY_DOMAIN_INFORMATION_CLASS pic,
- PVOID *Buffer
- )
+ PVOID *Buffer)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaQueryForestTrustInformation(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PLSA_UNICODE_STRING TrustedDomainName,
- PLSA_FOREST_TRUST_INFORMATION * ForestTrustInfo
- )
+ PLSA_FOREST_TRUST_INFORMATION * ForestTrustInfo)
+{
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+NTSTATUS STDCALL
+LsaQueryInformationPolicy(LSA_HANDLE PolicyHandle,
+ POLICY_INFORMATION_CLASS pic,
+ PVOID *Buffer)
{
- return(FALSE);
+ DPRINT1("(%p,0x%08x,%p):LsaQueryInformationPolicy stub\n",
+ PolicyHandle, pic, Buffer);
+
+ if (!Buffer)
+ return FALSE;
+
+ switch (pic)
+ {
+ case PolicyAuditEventsInformation: /* 2 */
+ {
+ PPOLICY_AUDIT_EVENTS_INFO p = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(POLICY_AUDIT_EVENTS_INFO));
+ p->AuditingMode = FALSE; /* no auditing */
+ *Buffer = p;
+ }
+ break;
+ case PolicyPrimaryDomainInformation: /* 3 */
+ case PolicyAccountDomainInformation: /* 5 */
+ {
+ struct di
+ { POLICY_PRIMARY_DOMAIN_INFO ppdi;
+ SID sid;
+ };
+ SID_IDENTIFIER_AUTHORITY localSidAuthority = {SECURITY_NT_AUTHORITY};
+
+ struct di * xdi = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(xdi));
+ HKEY key;
+ BOOL useDefault = TRUE;
+ LONG ret;
+
+ if ((ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
+ "System\\CurrentControlSet\\Services\\VxD\\VNETSUP", 0,
+ KEY_READ, &key)) == ERROR_SUCCESS)
+ {
+ DWORD size = 0;
+ WCHAR wg[] = { 'W','o','r','k','g','r','o','u','p',0 };
+
+ ret = RegQueryValueExW(key, wg, NULL, NULL, NULL, &size);
+ if (ret == ERROR_MORE_DATA || ret == ERROR_SUCCESS)
+ {
+ xdi->ppdi.Name.Buffer = RtlAllocateHeap(RtlGetProcessHeap(),
+ HEAP_ZERO_MEMORY, size);
+ if ((ret = RegQueryValueExW(key, wg, NULL, NULL,
+ (LPBYTE)xdi->ppdi.Name.Buffer, &size)) == ERROR_SUCCESS)
+ {
+ xdi->ppdi.Name.Length = (USHORT)size;
+ useDefault = FALSE;
+ }
+ else
+ {
+ RtlFreeHeap(RtlGetProcessHeap(), 0, xdi->ppdi.Name.Buffer);
+ xdi->ppdi.Name.Buffer = NULL;
+ }
+ }
+ RegCloseKey(key);
+ }
+ if (useDefault)
+ RtlCreateUnicodeStringFromAsciiz(&(xdi->ppdi.Name), "DOMAIN");
+ DPRINT1("setting domain to \n");
+
+ xdi->ppdi.Sid = &(xdi->sid);
+ xdi->sid.Revision = SID_REVISION;
+ xdi->sid.SubAuthorityCount = 1;
+ xdi->sid.IdentifierAuthority = localSidAuthority;
+ xdi->sid.SubAuthority[0] = SECURITY_LOCAL_SYSTEM_RID;
+ *Buffer = xdi;
+ }
+ break;
+ case PolicyAuditLogInformation:
+ case PolicyPdAccountInformation:
+ case PolicyLsaServerRoleInformation:
+ case PolicyReplicaSourceInformation:
+ case PolicyDefaultQuotaInformation:
+ case PolicyModificationInformation:
+ case PolicyAuditFullSetInformation:
+ case PolicyAuditFullQueryInformation:
+ case PolicyDnsDomainInformation:
+ case PolicyEfsInformation:
+ {
+ DPRINT1("category not implemented\n");
+ return FALSE;
+ }
+ }
+ return TRUE;
}
/*
NTSTATUS
STDCALL
LsaQueryTrustedDomainInfoByName(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PLSA_UNICODE_STRING TrustedDomainName,
TRUSTED_INFORMATION_CLASS pic,
- PVOID *Buffer
- )
+ PVOID *Buffer)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaQueryTrustedDomainInfo(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PSID TrustedDomainSid,
TRUSTED_INFORMATION_CLASS pic,
- PVOID *Buffer
- )
+ PVOID *Buffer)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaRemoveAccountRights(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PSID AccountSid,
- BOOL AllRights,
+ BOOLEAN AllRights,
PLSA_UNICODE_STRING UserRights,
- ULONG CountOfRights
- )
+ ULONG CountOfRights)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaRetrievePrivateData(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PLSA_UNICODE_STRING KeyName,
- PLSA_UNICODE_STRING * PrivateData
- )
+ PLSA_UNICODE_STRING *PrivateData)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaSetDomainInformationPolicy(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
POLICY_DOMAIN_INFORMATION_CLASS pic,
- PVOID Buffer
- )
+ PVOID Buffer)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaSetInformationPolicy(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
POLICY_INFORMATION_CLASS pic,
- PVOID Buffer
- )
+ PVOID Buffer)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaSetForestTrustInformation(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PLSA_UNICODE_STRING TrustedDomainName,
PLSA_FOREST_TRUST_INFORMATION ForestTrustInfo,
BOOL CheckOnly,
- PLSA_FOREST_TRUST_COLLISION_INFORMATION * CollisionInfo
- )
+ PLSA_FOREST_TRUST_COLLISION_INFORMATION *CollisionInfo)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaSetTrustedDomainInfoByName(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PLSA_UNICODE_STRING TrustedDomainName,
TRUSTED_INFORMATION_CLASS pic,
- PVOID Buffer
- )
+ PVOID Buffer)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaSetTrustedDomainInformation(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PSID TrustedDomainSid,
TRUSTED_INFORMATION_CLASS pic,
- PVOID Buffer
- )
+ PVOID Buffer)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
/*
NTSTATUS
STDCALL
LsaStorePrivateData(
- LSA_HANDLE lsah,
+ LSA_HANDLE PolicyHandle,
PLSA_UNICODE_STRING KeyName,
- PLSA_UNICODE_STRING PrivateData
- )
+ PLSA_UNICODE_STRING PrivateData)
{
- return(FALSE);
+ return STATUS_NOT_IMPLEMENTED;
}
TrustedDomainAuthInformation,
TrustedDomainFullInformation
} TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS;
+typedef enum _LSA_FOREST_TRUST_RECORD_TYPE {
+ ForestTrustTopLevelName,
+ ForestTrustTopLevelNameEx,
+ ForestTrustDomainInfo,
+ ForestTrustRecordTypeLast = ForestTrustDomainInfo
+} LSA_FOREST_TRUST_RECORD_TYPE;
+typedef enum _LSA_FOREST_TRUST_COLLISION_RECORD_TYPE {
+ CollisionTdo,
+ CollisionXref,
+ CollisionOther
+} LSA_FOREST_TRUST_COLLISION_RECORD_TYPE;
typedef struct _DOMAIN_PASSWORD_INFORMATION {
USHORT MinPasswordLength;
USHORT PasswordHistoryLength;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
#endif
typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES;
+typedef struct _LSA_FOREST_TRUST_DOMAIN_INFO {
+ PSID Sid;
+ LSA_UNICODE_STRING DnsName;
+ LSA_UNICODE_STRING NetbiosName;
+} LSA_FOREST_TRUST_DOMAIN_INFO, *PLSA_FOREST_TRUST_DOMAIN_INFO;
+typedef struct _LSA_FOREST_TRUST_BINARY_DATA {
+ ULONG Length;
+ PUCHAR Buffer;
+} LSA_FOREST_TRUST_BINARY_DATA, *PLSA_FOREST_TRUST_BINARY_DATA;
+typedef struct _LSA_FOREST_TRUST_RECORD {
+ ULONG Flags;
+ LSA_FOREST_TRUST_RECORD_TYPE ForestTrustType;
+ LARGE_INTEGER Time;
+ union {
+ LSA_UNICODE_STRING TopLevelName;
+ LSA_FOREST_TRUST_DOMAIN_INFO DomainInfo;
+ LSA_FOREST_TRUST_BINARY_DATA Data;
+ } ForestTrustData;
+} LSA_FOREST_TRUST_RECORD, *PLSA_FOREST_TRUST_RECORD;
+typedef struct _LSA_FOREST_TRUST_INFORMATION {
+ ULONG RecordCount;
+ PLSA_FOREST_TRUST_RECORD *Entries;
+} LSA_FOREST_TRUST_INFORMATION, *PLSA_FOREST_TRUST_INFORMATION;
+typedef struct _LSA_FOREST_TRUST_COLLISION_RECORD {
+ ULONG Index;
+ LSA_FOREST_TRUST_COLLISION_RECORD_TYPE Type;
+ ULONG Flags;
+ LSA_UNICODE_STRING Name;
+} LSA_FOREST_TRUST_COLLISION_RECORD, *PLSA_FOREST_TRUST_COLLISION_RECORD;
+typedef struct _LSA_FOREST_TRUST_COLLISION_INFORMATION {
+ ULONG RecordCount;
+ PLSA_FOREST_TRUST_COLLISION_RECORD *Entries;
+} LSA_FOREST_TRUST_COLLISION_INFORMATION, *PLSA_FOREST_TRUST_COLLISION_INFORMATION;
typedef struct _LSA_TRUST_INFORMATION {
LSA_UNICODE_STRING Name;
PSID Sid;
ULONG RelativeId;
LONG DomainIndex;
} LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID;
+typedef struct _LSA_TRANSLATED_SID2 {
+ SID_NAME_USE Use;
+ PSID Sid;
+ LONG DomainIndex;
+ ULONG Flags;
+} LSA_TRANSLATED_SID2, *PLSA_TRANSLATED_SID2;
typedef struct _LSA_TRANSLATED_NAME {
SID_NAME_USE Use;
LSA_UNICODE_STRING Name;
NTSTATUS NTAPI LsaEnumerateTrustedDomains(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,
PVOID*,ULONG,PULONG);
NTSTATUS NTAPI LsaEnumerateTrustedDomainsEx(LSA_HANDLE,PLSA_ENUMERATION_HANDLE,
- TRUSTED_INFORMATION_CLASS,PVOID*,ULONG,PULONG);
+ PVOID*,ULONG,PULONG);
NTSTATUS NTAPI LsaFreeMemory(PVOID);
NTSTATUS NTAPI LsaFreeReturnBuffer(PVOID);
NTSTATUS NTAPI LsaLogonUser(HANDLE,PLSA_STRING,SECURITY_LOGON_TYPE,ULONG,PVOID,