From 06e579a94463ac24b2c5efd58133e9d62f14cbbb Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Thu, 17 Jun 2004 09:07:12 +0000 Subject: [PATCH] Compile advapi32 using w32api. svn path=/trunk/; revision=9695 --- reactos/include/accctrl.h | 6 + reactos/include/ascii.h | 6 +- reactos/include/ntsecapi.h | 27 +- reactos/include/unicode.h | 6 +- reactos/lib/advapi32/makefile | 6 +- reactos/lib/advapi32/misc/hwprofiles.c | 8 +- reactos/lib/advapi32/misc/logon.c | 14 +- reactos/lib/advapi32/reg/reg.c | 70 ++-- reactos/lib/advapi32/sec/lsa.c | 557 ++++++++++++------------- reactos/lib/advapi32/token/privilege.c | 5 +- reactos/w32api/include/ntsecapi.h | 52 ++- 11 files changed, 401 insertions(+), 356 deletions(-) diff --git a/reactos/include/accctrl.h b/reactos/include/accctrl.h index 7c3b60998f6..2ffe9374e54 100644 --- a/reactos/include/accctrl.h +++ b/reactos/include/accctrl.h @@ -16,6 +16,10 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#ifdef __USE_W32API +#include_next +#else + #ifndef __WINE_ACCCTRL_H #define __WINE_ACCCTRL_H @@ -463,3 +467,5 @@ typedef struct _FN_OBJECT_MGR_FUNCTIONS #endif #endif /* __WINE_ACCCTRL_H */ + +#endif /* __USE_W32API */ diff --git a/reactos/include/ascii.h b/reactos/include/ascii.h index 8a05a88fb94..c694424e14f 100644 --- a/reactos/include/ascii.h +++ b/reactos/include/ascii.h @@ -94,9 +94,9 @@ GetCurrentHwProfileA ( WINBOOL STDCALL LogonUserA ( - LPCSTR lpszUsername, - LPCSTR lpszDomain, - LPCSTR lpszPassword, + LPSTR lpszUsername, + LPSTR lpszDomain, + LPSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken diff --git a/reactos/include/ntsecapi.h b/reactos/include/ntsecapi.h index eccd0ccd379..3eca6a7ee80 100644 --- a/reactos/include/ntsecapi.h +++ b/reactos/include/ntsecapi.h @@ -122,18 +122,19 @@ typedef PVOID LSA_HANDLE, *PLSA_HANDLE; typedef enum { - PolicyAuditLogInformation = 1, - PolicyAuditEventsInformation, - PolicyPrimaryDomainInformation, - PolicyPdAccountInformation, - PolicyAccountDomainInformation, - PolicyLsaServerRoleInformation, - PolicyReplicaSourceInformation, - PolicyDefaultQuotaInformation, - PolicyModificationInformation, - PolicyAuditFullSetInformation, - PolicyAuditFullQueryInformation, - PolicyDnsDomainInformation + PolicyAuditLogInformation = 1, + PolicyAuditEventsInformation, + PolicyPrimaryDomainInformation, + PolicyPdAccountInformation, + PolicyAccountDomainInformation, + PolicyLsaServerRoleInformation, + PolicyReplicaSourceInformation, + PolicyDefaultQuotaInformation, + PolicyModificationInformation, + PolicyAuditFullSetInformation, + PolicyAuditFullQueryInformation, + PolicyDnsDomainInformation, + PolicyEfsInformation } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS; typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS; @@ -484,7 +485,7 @@ STDCALL LsaRemoveAccountRights( LSA_HANDLE PolicyHandle, PSID AccountSid, - WINBOOL AllRights, + BOOLEAN AllRights, PLSA_UNICODE_STRING UserRights, ULONG CountOfRights ); diff --git a/reactos/include/unicode.h b/reactos/include/unicode.h index a25ac4d0500..e7d5e7471f2 100644 --- a/reactos/include/unicode.h +++ b/reactos/include/unicode.h @@ -95,9 +95,9 @@ GetCurrentHwProfileW ( WINBOOL STDCALL LogonUserW ( - LPCWSTR lpszUsername, - LPCWSTR lpszDomain, - LPCWSTR lpszPassword, + LPWSTR lpszUsername, + LPWSTR lpszDomain, + LPWSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken diff --git a/reactos/lib/advapi32/makefile b/reactos/lib/advapi32/makefile index e4ff8528f03..9a96ad9753c 100644 --- a/reactos/lib/advapi32/makefile +++ b/reactos/lib/advapi32/makefile @@ -1,4 +1,4 @@ -# $Id: makefile,v 1.40 2004/05/29 21:24:42 hbirr Exp $ +# $Id: makefile,v 1.41 2004/06/17 09:07:12 ekohl Exp $ PATH_TO_TOP = ../.. @@ -6,12 +6,12 @@ TARGET_TYPE = dynlink TARGET_NAME = advapi32 -TARGET_CFLAGS = -Wall -Werror -fno-builtin +TARGET_CFLAGS = -Wall -Werror -fno-builtin -D__USE_W32API # TARGET_CFLAGS += -DUNICODE TARGET_LFLAGS = -nostartfiles -nostdlib -TARGET_SDKLIBS = ntdll.a kernel32.a libwine.a msvcrt.a +TARGET_SDKLIBS = ntdll.a kernel32.a TARGET_BASE = $(TARGET_BASE_LIB_ADVAPI32) diff --git a/reactos/lib/advapi32/misc/hwprofiles.c b/reactos/lib/advapi32/misc/hwprofiles.c index f0f18713442..d89b9d8bbff 100644 --- a/reactos/lib/advapi32/misc/hwprofiles.c +++ b/reactos/lib/advapi32/misc/hwprofiles.c @@ -1,4 +1,4 @@ -/* $Id: hwprofiles.c,v 1.1 2004/02/25 23:12:39 sedwards Exp $ +/* $Id: hwprofiles.c,v 1.2 2004/06/17 09:07:12 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries @@ -8,8 +8,9 @@ * UPDATE HISTORY: * 20042502 */ -#include +#include #include +#include /****************************************************************************** * GetCurrentHwProfileA [ADVAPI32.@] @@ -23,7 +24,8 @@ * Success: TRUE. pInfo is updated with the hardware profile details. * Failure: FALSE. */ -BOOL STDCALL GetCurrentHwProfileA(LPHW_PROFILE_INFOA pInfo) +BOOL STDCALL +GetCurrentHwProfileA(LPHW_PROFILE_INFOA pInfo) { DPRINT("GetCurrentHwProfileA stub\n"); return 1; diff --git a/reactos/lib/advapi32/misc/logon.c b/reactos/lib/advapi32/misc/logon.c index 83a12a97402..73fc8f19ae3 100644 --- a/reactos/lib/advapi32/misc/logon.c +++ b/reactos/lib/advapi32/misc/logon.c @@ -1,4 +1,4 @@ -/* $Id: logon.c,v 1.5 2004/03/09 15:04:28 ekohl Exp $ +/* $Id: logon.c,v 1.6 2004/06/17 09:07:12 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries @@ -130,9 +130,9 @@ CreateProcessAsUserW (HANDLE hToken, * @unimplemented */ BOOL STDCALL -LogonUserA (LPCSTR lpszUsername, - LPCSTR lpszDomain, - LPCSTR lpszPassword, +LogonUserA (LPSTR lpszUsername, + LPSTR lpszDomain, + LPSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken) @@ -241,9 +241,9 @@ SamGetUserSid (LPCWSTR UserName, * @unimplemented */ BOOL STDCALL -LogonUserW (LPCWSTR lpszUsername, - LPCWSTR lpszDomain, - LPCWSTR lpszPassword, +LogonUserW (LPWSTR lpszUsername, + LPWSTR lpszDomain, + LPWSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken) diff --git a/reactos/lib/advapi32/reg/reg.c b/reactos/lib/advapi32/reg/reg.c index 843e9410f92..1f720b98c34 100644 --- a/reactos/lib/advapi32/reg/reg.c +++ b/reactos/lib/advapi32/reg/reg.c @@ -1,4 +1,4 @@ -/* $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 @@ -37,7 +37,7 @@ static HANDLE ProcessHeap; /* PROTOTYPES ***************************************************************/ -static NTSTATUS MapDefaultKey (PHKEY ParentKey, HKEY Key); +static NTSTATUS MapDefaultKey (PHANDLE ParentKey, HKEY Key); static VOID CloseDefaultKeys(VOID); static NTSTATUS OpenClassesRootKey(PHANDLE KeyHandle); @@ -81,7 +81,7 @@ RegCleanup (VOID) static NTSTATUS -MapDefaultKey (PHKEY RealKey, +MapDefaultKey (PHANDLE RealKey, HKEY Key) { PHANDLE Handle; @@ -92,7 +92,7 @@ MapDefaultKey (PHKEY RealKey, if (((ULONG)Key & 0xF0000000) != 0x80000000) { - *RealKey = Key; + *RealKey = (HANDLE)Key; return STATUS_SUCCESS; } @@ -148,7 +148,7 @@ MapDefaultKey (PHKEY RealKey, if (NT_SUCCESS(Status)) { - *RealKey = (HKEY)*Handle; + *RealKey = *Handle; } return Status; @@ -332,7 +332,7 @@ RegCreateKeyExA (HKEY hKey, UNICODE_STRING SubKeyString; UNICODE_STRING ClassString; OBJECT_ATTRIBUTES Attributes; - HKEY ParentKey; + HANDLE ParentKey; LONG ErrorCode; NTSTATUS Status; @@ -361,7 +361,7 @@ RegCreateKeyExA (HKEY hKey, OBJ_CASE_INSENSITIVE, (HANDLE)ParentKey, (PSECURITY_DESCRIPTOR)lpSecurityAttributes); - Status = NtCreateKey (phkResult, + Status = NtCreateKey ((PHANDLE)phkResult, samDesired, &Attributes, 0, @@ -404,7 +404,7 @@ RegCreateKeyExW (HKEY hKey, UNICODE_STRING SubKeyString; UNICODE_STRING ClassString; OBJECT_ATTRIBUTES Attributes; - HKEY ParentKey; + HANDLE ParentKey; LONG ErrorCode; NTSTATUS Status; @@ -430,7 +430,7 @@ RegCreateKeyExW (HKEY hKey, OBJ_CASE_INSENSITIVE, (HANDLE)ParentKey, (PSECURITY_DESCRIPTOR)lpSecurityAttributes); - Status = NtCreateKey (phkResult, + Status = NtCreateKey ((PHANDLE)phkResult, samDesired, &Attributes, 0, @@ -504,7 +504,7 @@ RegDeleteKeyA (HKEY hKey, { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING SubKeyName; - HKEY ParentKey; + HANDLE ParentKey; HANDLE TargetKey; NTSTATUS Status; LONG ErrorCode; @@ -561,7 +561,7 @@ RegDeleteKeyW (HKEY hKey, { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING SubKeyName; - HKEY ParentKey; + HANDLE ParentKey; HANDLE TargetKey; NTSTATUS Status; LONG ErrorCode; @@ -615,7 +615,7 @@ RegDeleteValueA (HKEY hKey, LPCSTR lpValueName) { UNICODE_STRING ValueName; - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode; NTSTATUS Status; @@ -656,7 +656,7 @@ RegDeleteValueW (HKEY hKey, UNICODE_STRING ValueName; NTSTATUS Status; LONG ErrorCode; - HKEY KeyHandle; + HANDLE KeyHandle; Status = MapDefaultKey (&KeyHandle, hKey); @@ -761,7 +761,7 @@ RegEnumKeyExA (HKEY 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", @@ -936,7 +936,7 @@ RegEnumKeyExW (HKEY hKey, ULONG ResultSize; ULONG NameLength; ULONG ClassLength; - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode = ERROR_SUCCESS; NTSTATUS Status; @@ -1088,7 +1088,7 @@ RegEnumValueA (HKEY hKey, ULONG BufferSize; ULONG DataLength; ULONG ResultSize; - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode; NTSTATUS Status; UNICODE_STRING StringU; @@ -1255,7 +1255,7 @@ RegEnumValueW (HKEY hKey, ULONG BufferSize; ULONG DataLength; ULONG ResultSize; - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode; NTSTATUS Status; @@ -1373,7 +1373,7 @@ RegEnumValueW (HKEY hKey, LONG STDCALL RegFlushKey(HKEY hKey) { - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode; NTSTATUS Status; @@ -1618,7 +1618,7 @@ RegOpenKeyA (HKEY hKey, { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING SubKeyString; - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode; NTSTATUS Status; @@ -1638,7 +1638,7 @@ RegOpenKeyA (HKEY hKey, OBJ_CASE_INSENSITIVE, KeyHandle, NULL); - Status = NtOpenKey (phkResult, + Status = NtOpenKey ((PHANDLE)phkResult, MAXIMUM_ALLOWED, &ObjectAttributes); RtlFreeUnicodeString (&SubKeyString); @@ -1668,7 +1668,7 @@ RegOpenKeyW (HKEY hKey, { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING SubKeyString; - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode; NTSTATUS Status; @@ -1688,7 +1688,7 @@ RegOpenKeyW (HKEY hKey, OBJ_CASE_INSENSITIVE, KeyHandle, NULL); - Status = NtOpenKey (phkResult, + Status = NtOpenKey ((PHANDLE)phkResult, MAXIMUM_ALLOWED, &ObjectAttributes); if (!NT_SUCCESS(Status)) @@ -1716,7 +1716,7 @@ RegOpenKeyExA (HKEY hKey, { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING SubKeyString; - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode; NTSTATUS Status; @@ -1736,7 +1736,7 @@ RegOpenKeyExA (HKEY hKey, OBJ_CASE_INSENSITIVE, KeyHandle, NULL); - Status = NtOpenKey (phkResult, + Status = NtOpenKey ((PHANDLE)phkResult, samDesired, &ObjectAttributes); RtlFreeUnicodeString (&SubKeyString); @@ -1765,7 +1765,7 @@ RegOpenKeyExW (HKEY hKey, { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING SubKeyString; - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode; NTSTATUS Status; @@ -1793,7 +1793,7 @@ RegOpenKeyExW (HKEY hKey, OBJ_CASE_INSENSITIVE, KeyHandle, NULL); - Status = NtOpenKey (phkResult, + Status = NtOpenKey ((PHANDLE)phkResult, samDesired, &ObjectAttributes); if (!NT_SUCCESS(Status)) @@ -1891,7 +1891,7 @@ RegQueryInfoKeyW (HKEY hKey, PKEY_FULL_INFORMATION FullInfo; ULONG FullInfoSize; ULONG ClassLength; - HKEY KeyHandle; + HANDLE KeyHandle; NTSTATUS Status; LONG ErrorCode = ERROR_SUCCESS; ULONG Length; @@ -2091,12 +2091,12 @@ RegQueryMultipleValuesW (HKEY hKey, 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, @@ -2140,7 +2140,7 @@ RegQueryValueExW (HKEY hKey, 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", @@ -2449,7 +2449,7 @@ RegQueryValueW (HKEY hKey, { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING SubKeyString; - HKEY KeyHandle; + HANDLE KeyHandle; HANDLE RealKey; LONG ErrorCode; BOOL CloseRealKey; @@ -2811,7 +2811,7 @@ RegSaveKeyW (HKEY hKey, UNICODE_STRING FileName; IO_STATUS_BLOCK IoStatusBlock; HANDLE FileHandle; - HKEY KeyHandle; + HANDLE KeyHandle; NTSTATUS Status; LONG ErrorCode; @@ -2886,7 +2886,7 @@ RegSetKeySecurity (HKEY hKey, SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor) { - HKEY KeyHandle; + HANDLE KeyHandle; LONG ErrorCode; NTSTATUS Status; @@ -3019,7 +3019,7 @@ RegSetValueExW (HKEY hKey, { UNICODE_STRING ValueName; PUNICODE_STRING pValueName; - HKEY KeyHandle; + HANDLE KeyHandle; NTSTATUS Status; LONG ErrorCode; @@ -3134,7 +3134,7 @@ RegSetValueW (HKEY hKey, { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING SubKeyString; - HKEY KeyHandle; + HANDLE KeyHandle; HANDLE RealKey; LONG ErrorCode; BOOL CloseRealKey; diff --git a/reactos/lib/advapi32/sec/lsa.c b/reactos/lib/advapi32/sec/lsa.c index 41c31f52e64..fb5a6722aad 100644 --- a/reactos/lib/advapi32/sec/lsa.c +++ b/reactos/lib/advapi32/sec/lsa.c @@ -1,4 +1,4 @@ -/* $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 @@ -12,28 +12,200 @@ * */ +#define NTOS_MODE_USER +#include #include -#include #include + +#define NDEBUG #include + +#ifndef SID_REVISION /* FIXME - Winnt.h */ +#define SID_REVISION (1) /* Current revision */ +#endif + + +/* + * @unimplemented + */ +NTSTATUS STDCALL +LsaClose(LSA_HANDLE ObjectHandle) +{ + DPRINT1("(%p):LsaClose stub\n",ObjectHandle); + return 0xc0000000; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaAddAccountRights( + LSA_HANDLE PolicyHandle, + PSID AccountSid, + PLSA_UNICODE_STRING UserRights, + ULONG CountOfRights) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaCreateTrustedDomainEx( + LSA_HANDLE PolicyHandle, + PTRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, + PTRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation, + ACCESS_MASK DesiredAccess, + PLSA_HANDLE TrustedDomainHandle) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaDeleteTrustedDomain( + LSA_HANDLE PolicyHandle, + PSID TrustedDomainSid) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaEnumerateAccountRights( + LSA_HANDLE PolicyHandle, + PSID AccountSid, + PLSA_UNICODE_STRING *UserRights, + PULONG CountOfRights) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaEnumerateAccountsWithUserRight( + LSA_HANDLE PolicyHandle, + OPTIONAL PLSA_UNICODE_STRING UserRights, + PVOID *EnumerationBuffer, + PULONG CountReturned) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaEnumerateTrustedDomains( + LSA_HANDLE PolicyHandle, + PLSA_ENUMERATION_HANDLE EnumerationContext, + PVOID *Buffer, + ULONG PreferedMaximumLength, + PULONG CountReturned) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaEnumerateTrustedDomainsEx( + LSA_HANDLE PolicyHandle, + PLSA_ENUMERATION_HANDLE EnumerationContext, + PVOID *Buffer, + ULONG PreferedMaximumLength, + PULONG CountReturned) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @implemented + */ +NTSTATUS STDCALL +LsaFreeMemory(PVOID Buffer) +{ + return RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer); +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaLookupNames( + LSA_HANDLE PolicyHandle, + ULONG Count, + PLSA_UNICODE_STRING Names, + PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, + PLSA_TRANSLATED_SID *Sids) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaLookupNames2( + LSA_HANDLE PolicyHandle, + ULONG Flags, + ULONG Count, + PLSA_UNICODE_STRING Names, + PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, + PLSA_TRANSLATED_SID2 *Sids) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaLookupSids( + LSA_HANDLE PolicyHandle, + ULONG Count, + PSID *Sids, + PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, + PLSA_TRANSLATED_NAME *Names) +{ + return STATUS_NOT_IMPLEMENTED; +} + /****************************************************************************** - * LsaNtStatusToWinError [ADVAPI32.@] + * LsaNtStatusToWinError * * PARAMS * Status [I] * * @implemented */ -ULONG WINAPI +ULONG STDCALL LsaNtStatusToWinError(NTSTATUS Status) { - return RtlNtStatusToDosError(Status); + return RtlNtStatusToDosError(Status); } - /****************************************************************************** - * LsaOpenPolicy [ADVAPI32.@] + * LsaOpenPolicy * * PARAMS * x1 [] @@ -44,30 +216,69 @@ LsaNtStatusToWinError(NTSTATUS Status) * @unimplemented */ NTSTATUS STDCALL -LsaOpenPolicy (PLSA_UNICODE_STRING lsaucs, - PLSA_OBJECT_ATTRIBUTES lsaoa, - ACCESS_MASK access, - PLSA_HANDLE lsah) +LsaOpenPolicy(PLSA_UNICODE_STRING lsaucs, + PLSA_OBJECT_ATTRIBUTES lsaoa, + ACCESS_MASK access, + PLSA_HANDLE PolicyHandle) { DPRINT1("LsaOpenPolicy - stub\n"); return STATUS_SUCCESS; } -#ifndef SID_REVISION /* FIXME - Winnt.h */ -#define SID_REVISION (1) /* Current revision */ -#endif - /* * @unimplemented */ NTSTATUS STDCALL -LsaQueryInformationPolicy(LSA_HANDLE lsah,POLICY_INFORMATION_CLASS pic,PVOID* Buffer) +LsaOpenTrustedDomainByName( + LSA_HANDLE PolicyHandle, + PLSA_UNICODE_STRING TrustedDomainName, + ACCESS_MASK DesiredAccess, + PLSA_HANDLE TrustedDomainHandle) { - DPRINT1("(%p,0x%08x,%p):LsaQueryInformationPolicy stub\n", - lsah, pic, Buffer); + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaQueryDomainInformationPolicy( + LSA_HANDLE PolicyHandle, + POLICY_DOMAIN_INFORMATION_CLASS pic, + PVOID *Buffer) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS +STDCALL +LsaQueryForestTrustInformation( + LSA_HANDLE PolicyHandle, + PLSA_UNICODE_STRING TrustedDomainName, + PLSA_FOREST_TRUST_INFORMATION * ForestTrustInfo) +{ + return STATUS_NOT_IMPLEMENTED; +} + +/* + * @unimplemented + */ +NTSTATUS STDCALL +LsaQueryInformationPolicy(LSA_HANDLE PolicyHandle, + POLICY_INFORMATION_CLASS pic, + PVOID *Buffer) +{ + DPRINT1("(%p,0x%08x,%p):LsaQueryInformationPolicy stub\n", + PolicyHandle, pic, Buffer); + + if (!Buffer) + return FALSE; - if(!Buffer) return FALSE; switch (pic) { case PolicyAuditEventsInformation: /* 2 */ @@ -129,15 +340,16 @@ LsaQueryInformationPolicy(LSA_HANDLE lsah,POLICY_INFORMATION_CLASS pic,PVOID* Bu *Buffer = xdi; } break; - case PolicyAuditLogInformation: - case PolicyPdAccountInformation: - case PolicyLsaServerRoleInformation: - case PolicyReplicaSourceInformation: - case PolicyDefaultQuotaInformation: - case PolicyModificationInformation: - case PolicyAuditFullSetInformation: - case PolicyAuditFullQueryInformation: - case PolicyDnsDomainInformation: + 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; @@ -146,236 +358,18 @@ LsaQueryInformationPolicy(LSA_HANDLE lsah,POLICY_INFORMATION_CLASS pic,PVOID* Bu 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; -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaAddAccountRights( - LSA_HANDLE lsah, - PSID AccountSid, - PLSA_UNICODE_STRING UserRights, - ULONG CountOfRights - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaCreateTrustedDomainEx( - LSA_HANDLE lsah, - PTRUSTED_DOMAIN_INFORMATION_EX TrustedDomainInformation, - PTRUSTED_DOMAIN_AUTH_INFORMATION AuthenticationInformation, - ACCESS_MASK DesiredAccess, - PLSA_HANDLE TrustedDomainHandle - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaDeleteTrustedDomain( - LSA_HANDLE lsah, - PSID TrustedDomainSid - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaEnumerateAccountRights( - LSA_HANDLE lsah, - PSID AccountSid, - PLSA_UNICODE_STRING *UserRights, - PULONG CountOfRights - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaEnumerateAccountsWithUserRight( - LSA_HANDLE lsah, - OPTIONAL PLSA_UNICODE_STRING UserRights, - PVOID *EnumerationBuffer, - PULONG CountReturned - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaEnumerateTrustedDomains( - LSA_HANDLE lsah, - PLSA_ENUMERATION_HANDLE EnumerationContext, - PVOID *Buffer, - ULONG PreferedMaximumLength, - PULONG CountReturned - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaEnumerateTrustedDomainsEx( - LSA_HANDLE lsah, - PLSA_ENUMERATION_HANDLE EnumerationContext, - PVOID *Buffer, - ULONG PreferedMaximumLength, - PULONG CountReturned - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaLookupNames( - LSA_HANDLE lsah, - ULONG Count, - PLSA_UNICODE_STRING Names, - PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, - PLSA_TRANSLATED_SID *Sids - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaLookupNames2( - LSA_HANDLE lsah, - ULONG Flags, - ULONG Count, - PLSA_UNICODE_STRING Names, - PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, - PLSA_TRANSLATED_SID2 *Sids - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaLookupSids( - LSA_HANDLE lsah, - ULONG Count, - PSID *Sids, - PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains, - PLSA_TRANSLATED_NAME *Names - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaOpenTrustedDomainByName( - LSA_HANDLE lsah, - PLSA_UNICODE_STRING TrustedDomainName, - ACCESS_MASK DesiredAccess, - PLSA_HANDLE TrustedDomainHandle - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaQueryDomainInformationPolicy( - LSA_HANDLE lsah, - POLICY_DOMAIN_INFORMATION_CLASS pic, - PVOID *Buffer - ) -{ - return(FALSE); -} - -/* - * @unimplemented - */ -NTSTATUS -STDCALL -LsaQueryForestTrustInformation( - LSA_HANDLE lsah, - PLSA_UNICODE_STRING TrustedDomainName, - PLSA_FOREST_TRUST_INFORMATION * ForestTrustInfo - ) -{ - return(FALSE); -} - /* * @unimplemented */ 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; } /* @@ -384,13 +378,12 @@ LsaQueryTrustedDomainInfoByName( 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; } /* @@ -399,14 +392,13 @@ LsaQueryTrustedDomainInfo( 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; } /* @@ -415,12 +407,11 @@ LsaRemoveAccountRights( 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; } /* @@ -429,12 +420,11 @@ LsaRetrievePrivateData( NTSTATUS STDCALL LsaSetDomainInformationPolicy( - LSA_HANDLE lsah, + LSA_HANDLE PolicyHandle, POLICY_DOMAIN_INFORMATION_CLASS pic, - PVOID Buffer - ) + PVOID Buffer) { - return(FALSE); + return STATUS_NOT_IMPLEMENTED; } /* @@ -443,12 +433,11 @@ LsaSetDomainInformationPolicy( NTSTATUS STDCALL LsaSetInformationPolicy( - LSA_HANDLE lsah, + LSA_HANDLE PolicyHandle, POLICY_INFORMATION_CLASS pic, - PVOID Buffer - ) + PVOID Buffer) { - return(FALSE); + return STATUS_NOT_IMPLEMENTED; } /* @@ -457,14 +446,13 @@ LsaSetInformationPolicy( 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; } /* @@ -473,13 +461,12 @@ LsaSetForestTrustInformation( 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; } /* @@ -488,13 +475,12 @@ LsaSetTrustedDomainInfoByName( 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; } /* @@ -503,10 +489,9 @@ LsaSetTrustedDomainInformation( 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; } diff --git a/reactos/lib/advapi32/token/privilege.c b/reactos/lib/advapi32/token/privilege.c index 0a904961a1d..3f256ca1a97 100644 --- a/reactos/lib/advapi32/token/privilege.c +++ b/reactos/lib/advapi32/token/privilege.c @@ -1,4 +1,4 @@ -/* $Id: privilege.c,v 1.7 2004/03/25 11:30:07 ekohl Exp $ +/* $Id: privilege.c,v 1.8 2004/06/17 09:07:12 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries @@ -9,8 +9,9 @@ * 20010317 ea stubs */ +#define NTOS_MODE_USER +#include #include -#include /********************************************************************** diff --git a/reactos/w32api/include/ntsecapi.h b/reactos/w32api/include/ntsecapi.h index 559087292c9..7a412bffd97 100644 --- a/reactos/w32api/include/ntsecapi.h +++ b/reactos/w32api/include/ntsecapi.h @@ -247,6 +247,17 @@ typedef enum _TRUSTED_INFORMATION_CLASS { 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; @@ -270,6 +281,39 @@ typedef struct _LSA_OBJECT_ATTRIBUTES { } 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; @@ -283,6 +327,12 @@ typedef struct _LSA_TRANSLATED_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; @@ -562,7 +612,7 @@ NTSTATUS NTAPI LsaEnumerateAccountsWithUserRight(LSA_HANDLE,PLSA_UNICODE_STRING, 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,