add stubs to make clamwin run. by Christoph_vW
stub GetNativeSystemInfo better to make cpuz get further. by Christoph_vW
stub IsWow64Process better. by me
Modified: trunk/reactos/lib/advapi32/advapi32.def
Modified: trunk/reactos/lib/advapi32/crypt/crypt.c
Modified: trunk/reactos/lib/advapi32/sec/ac.c
Modified: trunk/reactos/lib/advapi32/sec/sec.c
Modified: trunk/reactos/lib/kernel32/misc/stubs.c
Modified: trunk/reactos/lib/kernel32/misc/sysinfo.c
Added: trunk/reactos/lib/secur32/secext.c
Modified: trunk/reactos/lib/secur32/secur32.def
Modified: trunk/reactos/lib/secur32/secur32.xml
Added: trunk/reactos/lib/secur32/sspi.c
Added: trunk/reactos/w32api/include/winefs.h

Modified: trunk/reactos/lib/advapi32/advapi32.def
--- trunk/reactos/lib/advapi32/advapi32.def	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/advapi32/advapi32.def	2005-10-12 21:39:28 UTC (rev 18416)
@@ -32,7 +32,7 @@
 AddAuditAccessAce@24
 AddAuditAccessAceEx@28
 AddAuditAccessObjectAce@36
-;AddUsersToEncryptedFile@8
+AddUsersToEncryptedFile@8
 AdjustTokenGroups@24
 AdjustTokenPrivileges@24
 AllocateAndInitializeSid@44
@@ -85,7 +85,7 @@
 ;ConvertSecurityDescriptorToAccessNamedW=ConvertSecurityDescriptorToAccessW@28
 ;ConvertSecurityDescriptorToAccessW@28
 ;ConvertSecurityDescriptorToStringSecurityDescriptorA@20
-;ConvertSecurityDescriptorToStringSecurityDescriptorW@20
+ConvertSecurityDescriptorToStringSecurityDescriptorW@20
 ConvertSidToStringSidA@8
 ConvertSidToStringSidW@8
 ;ConvertStringSDToSDDomainA@24
@@ -95,7 +95,7 @@
 ConvertStringSecurityDescriptorToSecurityDescriptorA@16
 ConvertStringSecurityDescriptorToSecurityDescriptorW@16
 ;ConvertStringSidToSidA@8
-;ConvertStringSidToSidW@8
+ConvertStringSidToSidW@8
 ConvertToAutoInheritPrivateObjectSecurity@24
 CopySid@12
 ;CreateCodeAuthzLevel@20
@@ -106,7 +106,7 @@
 ;CreateProcessAsUserSecure
 CreateProcessAsUserW@44
 ;CreateProcessWithLogonW
-;CreateRestrictedToken@36
+CreateRestrictedToken@36
 CreateServiceA@52
 CreateServiceW@52
 ;CreateTraceInstanceId@8
@@ -154,7 +154,7 @@
 ;CryptEnumProviderTypesA@24
 ;CryptEnumProviderTypesW@24
 ;CryptEnumProvidersA@24
-;CryptEnumProvidersW@24
+CryptEnumProvidersW@24
 CryptExportKey@24
 CryptGenKey@16
 CryptGenRandom@12
@@ -179,8 +179,8 @@
 ;CryptSignHashW@24
 CryptVerifySignatureA@24
 CryptVerifySignatureW@24
-;DecryptFileA@8
-;DecryptFileW@8
+DecryptFileA@8
+DecryptFileW@8
 DeleteAce@8
 DeleteService@4
 DeregisterEventSource@4
@@ -208,10 +208,10 @@
 ;ElfReportEventA@48
 ;ElfReportEventW@48
 ;EnableTrace
-;EncryptFileA
-;EncryptFileW
+EncryptFileA@4
+EncryptFileW@4
 ;EncryptedFileKeyInfo
-;EncryptionDisable
+EncryptionDisable@8
 EnumDependentServicesA@24
 EnumDependentServicesW@24
 EnumServiceGroupW@36
@@ -223,13 +223,13 @@
 EqualDomainSid@12
 EqualPrefixSid@8
 EqualSid@8
-;FileEncryptionStatusA
-;FileEncryptionStatusW
+FileEncryptionStatusA@8
+FileEncryptionStatusW@8
 FindFirstFreeAce@8
 ;FlushTraceA
 ;FlushTraceW
 ;FreeEncryptedFileKeyInfo
-;FreeEncryptionCertificateHashList
+FreeEncryptionCertificateHashList@4
 FreeInheritedFromArray@12
 FreeSid@4
 ;GetAccessPermissionsForObjectA
@@ -237,11 +237,11 @@
 GetAce@12
 GetAclInformation@16
 ;GetAuditedPermissionsFromAclA@16
-;GetAuditedPermissionsFromAclW@16
+GetAuditedPermissionsFromAclW@16
 GetCurrentHwProfileA@4
 GetCurrentHwProfileW@4
 ;GetEffectiveRightsFromAclA@12
-;GetEffectiveRightsFromAclW@12
+GetEffectiveRightsFromAclW@12
 ;GetEventLogInformation
 GetExplicitEntriesFromAclA@12=ADVAPI32.GetExplicitEntriesFromAclW
 GetExplicitEntriesFromAclW@12
@@ -343,7 +343,7 @@
 LookupPrivilegeValueW@12
 ;LookupSecurityDescriptorPartsA@28
 ;LookupSecurityDescriptorPartsW@28
-;LsaAddAccountRights@16
+LsaAddAccountRights@16
 ;LsaAddPrivilegesToAccount@8
 ;LsaClearAuditLog@4
 LsaClose@4
@@ -353,9 +353,9 @@
 ;LsaCreateTrustedDomainEx
 ;LsaDelete@4
 ;LsaDeleteTrustedDomain@8
-;LsaEnumerateAccountRights@16
+LsaEnumerateAccountRights@16
 ;LsaEnumerateAccounts@20
-;LsaEnumerateAccountsWithUserRight@16
+LsaEnumerateAccountsWithUserRight@16
 ;LsaEnumeratePrivileges@20
 ;LsaEnumeratePrivilegesOfAccount@8
 ;LsaEnumerateTrustedDomains@20
@@ -390,10 +390,10 @@
 ;LsaQuerySecurityObject@12
 ;LsaQueryTrustedDomainInfo@16
 ;LsaQueryTrustedDomainInfoByName
-;LsaRemoveAccountRights@20
+LsaRemoveAccountRights@20
 ;LsaRemovePrivilegesFromAccount@12
 LsaRetrievePrivateData@12
-;LsaSetInformationPolicy@12
+LsaSetInformationPolicy@12
 ;LsaSetForestTrustInformation
 ;LsaSetInformationPolicy
 ;LsaSetInformationTrustedDomain@12
@@ -448,7 +448,7 @@
 ;ProvAccessRightsToNTAccessMask ; ?
 ;QueryAllTracesA
 ;QueryAllTracesW
-;QueryRecoveryAgentsOnEncryptedFile
+QueryRecoveryAgentsOnEncryptedFile@8
 ;QueryServiceConfig2A
 ;QueryServiceConfig2W
 QueryServiceConfigA@16
@@ -460,7 +460,7 @@
 QueryServiceStatusEx@20
 ;QueryTraceA
 ;QueryTraceW
-;QueryUsersOnEncryptedFile
+QueryUsersOnEncryptedFile@8
 ;QueryWindows31FilesMigration@4
 ;ReadEncryptedFileRaw
 ReadEventLogA@28
@@ -539,7 +539,7 @@
 ;RegisterTraceGuidsA
 ;RegisterTraceGuidsW
 ;RemoveTraceCallback
-;RemoveUsersFromEncryptedFile
+RemoveUsersFromEncryptedFile@8
 ReportEventA@36
 ReportEventW@36
 RevertToSelf@0

Modified: trunk/reactos/lib/advapi32/crypt/crypt.c
--- trunk/reactos/lib/advapi32/crypt/crypt.c	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/advapi32/crypt/crypt.c	2005-10-12 21:39:28 UTC (rev 18416)
@@ -27,6 +27,7 @@
 
 #include <advapi32.h>
 #include "crypt.h"
+#include <winefs.h>
 
 #define NDEBUG
 #include <debug.h>
@@ -1935,3 +1936,98 @@
 	DPRINT1("(%p, %lx, %lx): stub [RtlDecryptMemory]\n", memory, length, flags);
 	return STATUS_SUCCESS;
 }
+
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI AddUsersToEncryptedFile (
+	LPCWSTR lpcwstr,
+	PENCRYPTION_CERTIFICATE_LIST pencryption_certificate_list
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI RemoveUsersFromEncryptedFile (
+	LPCWSTR lpcwstr,
+	PENCRYPTION_CERTIFICATE_HASH_LIST pencryption_certificate_hash_list
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL WINAPI EncryptionDisable (
+	LPCWSTR,
+	BOOL
+	);
+
+/*
+ * @unimplemented
+ */
+BOOL WINAPI FileEncryptionStatusW (
+	LPCWSTR lpcwstr,
+	LPDWORD lpdword
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+BOOL WINAPI FileEncryptionStatusA (
+	LPCSTR lpcstr,
+	LPDWORD lpdword
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI QueryUsersOnEncryptedFile (
+	LPCWSTR lpctstr,
+	PENCRYPTION_CERTIFICATE_HASH_LIST* pencryption_certificate_hash_list
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+
+/*
+ * @unimplemented
+ */
+void WINAPI FreeEncryptionCertificateHashList (
+	PENCRYPTION_CERTIFICATE_HASH_LIST pencryption_certificate_hash_list
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return;
+}
+
+
+/*
+ * @unimplemented
+ */
+DWORD WINAPI QueryRecoveryAgentsOnEncryptedFile (
+	LPCWSTR lpctstr,
+	PENCRYPTION_CERTIFICATE_HASH_LIST* pencryption_certificate_hash_list
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}

Modified: trunk/reactos/lib/advapi32/sec/ac.c
--- trunk/reactos/lib/advapi32/sec/ac.c	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/advapi32/sec/ac.c	2005-10-12 21:39:28 UTC (rev 18416)
@@ -692,5 +692,36 @@
     return ErrorCode;
 }
 
+/*
+ * @unimplemented
+ */
+DWORD
+STDCALL
+GetEffectiveRightsFromAclW(
+	PACL pacl,
+	PTRUSTEE_W ptrustee_w,
+	PACCESS_MASK paccess_mask
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
 
+
+/*
+ * @unimplemented
+ */
+DWORD
+STDCALL
+GetAuditedPermissionsFromAclW(
+	PACL pacl,
+	PTRUSTEE_W ptrustee_w,
+	PACCESS_MASK paccess_mask,
+	PACCESS_MASK paccess_mask2
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
 /* EOF */

Modified: trunk/reactos/lib/advapi32/sec/sec.c
--- trunk/reactos/lib/advapi32/sec/sec.c	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/advapi32/sec/sec.c	2005-10-12 21:39:28 UTC (rev 18416)
@@ -498,4 +498,40 @@
 }
 
 
+/*
+ * @unimplemented
+ */
+BOOL WINAPI DecryptFileW(LPCWSTR lpFileName, DWORD dwReserved)
+{
+    DPRINT1("%s() not implemented!\n", __FUNCTION__);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL WINAPI DecryptFileA(LPCSTR lpFileName, DWORD dwReserved)
+{
+    DPRINT1("%s() not implemented!\n", __FUNCTION__);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL WINAPI EncryptFileW(LPCWSTR lpFileName)
+{
+    DPRINT1("%s() not implemented!\n", __FUNCTION__);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
+BOOL WINAPI EncryptFileA(LPCSTR lpFileName)
+{
+    DPRINT1("%s() not implemented!\n", __FUNCTION__);
+    return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
 /* EOF */

Modified: trunk/reactos/lib/kernel32/misc/stubs.c
--- trunk/reactos/lib/kernel32/misc/stubs.c	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/kernel32/misc/stubs.c	2005-10-12 21:39:28 UTC (rev 18416)
@@ -592,17 +592,6 @@
     return 0;
 }
 
-/*
- * @unimplemented
- */
-VOID
-STDCALL
-GetNativeSystemInfo(
-    LPSYSTEM_INFO lpSystemInfo
-    )
-{
-    STUB;
-}
 
 /*
  * @unimplemented
@@ -720,7 +709,8 @@
     )
 {
     STUB;
-    return 0;
+    *Wow64Process = FALSE;
+    return TRUE;
 }
 
 /*

Modified: trunk/reactos/lib/kernel32/misc/sysinfo.c
--- trunk/reactos/lib/kernel32/misc/sysinfo.c	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/kernel32/misc/sysinfo.c	2005-10-12 21:39:28 UTC (rev 18416)
@@ -198,4 +198,20 @@
     return FALSE;
 }
 
+/*
+ * @implemented
+ */
+VOID
+STDCALL
+GetNativeSystemInfo(
+    LPSYSTEM_INFO lpSystemInfo
+    )
+{
+    //FIXME: GetNativeSystemInfo should return always the real Hardware Processorarchitecture
+    // in case a Program is running in 32bit Mode on AMD64
+    // GetSystemInfo should return PROCESSOR_ARCHITECTURE_INTEL and
+    // GetNativeSystemInfo should return PROCESSOR_ARCHITECTURE_AMD64
+    GetSystemInfo(lpSystemInfo);
+}
+
 /* EOF */

Added: trunk/reactos/lib/secur32/secext.c
--- trunk/reactos/lib/secur32/secext.c	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/secur32/secext.c	2005-10-12 21:39:28 UTC (rev 18416)
@@ -0,0 +1,61 @@
+#include <windows.h>
+#define NTOS_MODE_USER
+#include <ndk/ntndk.h>
+#include <lsass/lsass.h>
+
+#define NDEBUG
+#include <debug.h>
+
+#include <ntsecapi.h>
+#include <secext.h>
+
+
+BOOLEAN
+WINAPI
+GetComputerObjectNameA (
+	EXTENDED_NAME_FORMAT extended_name_format,
+	LPSTR lpstr,
+	PULONG pulong
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+BOOLEAN
+WINAPI
+GetComputerObjectNameW (
+	EXTENDED_NAME_FORMAT extended_name_format,
+	LPWSTR lpstr,
+	PULONG pulong
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+
+BOOLEAN
+WINAPI
+GetUserNameExA (
+	EXTENDED_NAME_FORMAT extended_exe_format,
+	LPSTR lpstr,
+	PULONG pulong
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+
+BOOLEAN
+WINAPI
+GetUserNameExW (
+	EXTENDED_NAME_FORMAT extended_exe_format,
+	LPWSTR lpstr,
+	PULONG pulong
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}

Modified: trunk/reactos/lib/secur32/secur32.def
--- trunk/reactos/lib/secur32/secur32.def	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/secur32/secur32.def	2005-10-12 21:39:28 UTC (rev 18416)
@@ -23,16 +23,16 @@
 ;@DeleteSecurityPackageA
 ;@DeleteSecurityPackageW
 ;@EncryptMessage
-;@EnumerateSecurityPackagesA
-;@EnumerateSecurityPackagesW
+;@EnumerateSecurityPackagesA@8
+EnumerateSecurityPackagesW@8
 ;@ExportSecurityContext
-;@FreeContextBuffer
+FreeContextBuffer@4
 ;@FreeCredentialsHandle
-;@GetComputerObjectNameA
-;@GetComputerObjectNameW
+GetComputerObjectNameA@12
+GetComputerObjectNameW@12
 ;GetSecurityUserInfo
-;@GetUserNameExA
-;@GetUserNameExW
+GetUserNameExA@12
+GetUserNameExW@12
 ;@ImpersonateSecurityContext
 ;@ImportSecurityContextA
 ;@ImportSecurityContextW

Modified: trunk/reactos/lib/secur32/secur32.xml
--- trunk/reactos/lib/secur32/secur32.xml	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/secur32/secur32.xml	2005-10-12 21:39:28 UTC (rev 18416)
@@ -3,10 +3,13 @@
 	<include base="secur32">.</include>
 	<define name="__SECUR32__" />
 	<define name="__USE_W32API" />
+	<define name="_WIN32_WINNT">0x501</define>
 	<library>ntdll</library>
 	<library>kernel32</library>
 	<library>advapi32</library>
 	<file>dllmain.c</file>
 	<file>lsa.c</file>
+	<file>secext.c</file>
+	<file>sspi.c</file>
 	<file>secur32.rc</file>
 </module>

Added: trunk/reactos/lib/secur32/sspi.c
--- trunk/reactos/lib/secur32/sspi.c	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/lib/secur32/sspi.c	2005-10-12 21:39:28 UTC (rev 18416)
@@ -0,0 +1,35 @@
+#include <windows.h>
+#define NTOS_MODE_USER
+#include <ndk/ntndk.h>
+#include <lsass/lsass.h>
+
+#define NDEBUG
+#include <debug.h>
+
+#include <ntsecapi.h>
+#include <security.h>
+#include <sspi.h>
+
+
+
+SECURITY_STATUS
+WINAPI
+EnumerateSecurityPackagesW (
+	PULONG pulong,
+	PSecPkgInfoW* psecpkginfow
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+
+SECURITY_STATUS
+WINAPI
+FreeContextBuffer (
+	PVOID pvoid
+	)
+{
+	DPRINT1("%s() not implemented!\n", __FUNCTION__);
+	return ERROR_CALL_NOT_IMPLEMENTED;
+}

Added: trunk/reactos/w32api/include/winefs.h
--- trunk/reactos/w32api/include/winefs.h	2005-10-12 20:20:18 UTC (rev 18415)
+++ trunk/reactos/w32api/include/winefs.h	2005-10-12 21:39:28 UTC (rev 18416)
@@ -0,0 +1,67 @@
+typedef struct _CERTIFICATE_BLOB {
+	DWORD dwCertEncodingType;
+	DWORD cbData;
+	PBYTE pbData;
+} EFS_CERTIFICATE_BLOB, *PEFS_CERTIFICATE_BLOB;
+
+typedef struct _EFS_HASH_BLOB {
+	DWORD cbData;
+	PBYTE pbData;
+} EFS_HASH_BLOB, *PEFS_HASH_BLOB;
+
+typedef struct _ENCRYPTION_CERTIFICATE {
+	DWORD cbTotalLength;
+	SID* pUserSid;
+	PEFS_CERTIFICATE_BLOB pCertBlob;
+} ENCRYPTION_CERTIFICATE, *PENCRYPTION_CERTIFICATE;
+
+typedef struct _ENCRYPTION_CERTIFICATE_HASH {
+	DWORD cbTotalLength;
+	SID* pUserSid;
+	PEFS_HASH_BLOB pHash;
+	LPWSTR lpDisplayInformation;
+} ENCRYPTION_CERTIFICATE_HASH, *PENCRYPTION_CERTIFICATE_HASH;
+
+typedef struct _ENCRYPTION_CERTIFICATE_LIST {
+	DWORD nUsers;
+	PENCRYPTION_CERTIFICATE* pUsers;
+} ENCRYPTION_CERTIFICATE_LIST, *PENCRYPTION_CERTIFICATE_LIST;
+
+typedef struct _ENCRYPTION_CERTIFICATE_HASH_LIST {
+	DWORD nCert_Hash;
+	PENCRYPTION_CERTIFICATE_HASH* pUsers;
+} ENCRYPTION_CERTIFICATE_HASH_LIST, *PENCRYPTION_CERTIFICATE_HASH_LIST;
+
+DWORD WINAPI AddUsersToEncryptedFile (
+	LPCWSTR,
+	PENCRYPTION_CERTIFICATE_LIST
+	);
+
+DWORD WINAPI RemoveUsersFromEncryptedFile (
+	LPCWSTR,
+	PENCRYPTION_CERTIFICATE_HASH_LIST
+	);
+
+BOOL WINAPI EncryptionDisable (
+	LPCWSTR,
+	BOOL
+	);
+
+BOOL WINAPI FileEncryptionStatus (
+	LPCTSTR,
+	LPDWORD
+	);
+
+DWORD WINAPI QueryUsersOnEncryptedFile (
+	LPCWSTR,
+	PENCRYPTION_CERTIFICATE_HASH_LIST*
+	);
+
+void WINAPI FreeEncryptionCertificateHashList (
+	PENCRYPTION_CERTIFICATE_HASH_LIST
+	);
+
+DWORD WINAPI QueryRecoveryAgentsOnEncryptedFile (
+	LPCWSTR,
+	PENCRYPTION_CERTIFICATE_HASH_LIST*
+	);