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

svn path=/trunk/; revision=18416
This commit is contained in:
Gunnar Dalsnes 2005-10-12 21:39:28 +00:00
parent 4fe5d38bfa
commit 016dd801d7
11 changed files with 377 additions and 42 deletions

View file

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

View file

@ -27,6 +27,7 @@
#include <advapi32.h> #include <advapi32.h>
#include "crypt.h" #include "crypt.h"
#include <winefs.h>
#define NDEBUG #define NDEBUG
#include <debug.h> #include <debug.h>
@ -1935,3 +1936,98 @@ NTSTATUS WINAPI SystemFunction041(PVOID memory, ULONG length, ULONG flags) /* R
DPRINT1("(%p, %lx, %lx): stub [RtlDecryptMemory]\n", memory, length, flags); DPRINT1("(%p, %lx, %lx): stub [RtlDecryptMemory]\n", memory, length, flags);
return STATUS_SUCCESS; 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;
}

View file

@ -692,5 +692,36 @@ GetExplicitEntriesFromAclW(
return ErrorCode; 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 */ /* EOF */

View file

@ -498,4 +498,40 @@ BuildSecurityDescriptorA(IN PTRUSTEE_A pOwner OPTIONAL,
} }
/*
* @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 */ /* EOF */

View file

@ -592,17 +592,6 @@ GetDevicePowerState(
return 0; return 0;
} }
/*
* @unimplemented
*/
VOID
STDCALL
GetNativeSystemInfo(
LPSYSTEM_INFO lpSystemInfo
)
{
STUB;
}
/* /*
* @unimplemented * @unimplemented
@ -720,7 +709,8 @@ IsWow64Process(
) )
{ {
STUB; STUB;
return 0; *Wow64Process = FALSE;
return TRUE;
} }
/* /*

View file

@ -198,4 +198,20 @@ GetSystemRegistryQuota(PDWORD pdwQuotaAllowed,
return FALSE; 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 */ /* EOF */

View file

@ -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;
}

View file

@ -23,16 +23,16 @@ LsaCallAuthenticationPackage@28
;@DeleteSecurityPackageA ;@DeleteSecurityPackageA
;@DeleteSecurityPackageW ;@DeleteSecurityPackageW
;@EncryptMessage ;@EncryptMessage
;@EnumerateSecurityPackagesA ;@EnumerateSecurityPackagesA@8
;@EnumerateSecurityPackagesW EnumerateSecurityPackagesW@8
;@ExportSecurityContext ;@ExportSecurityContext
;@FreeContextBuffer FreeContextBuffer@4
;@FreeCredentialsHandle ;@FreeCredentialsHandle
;@GetComputerObjectNameA GetComputerObjectNameA@12
;@GetComputerObjectNameW GetComputerObjectNameW@12
;GetSecurityUserInfo ;GetSecurityUserInfo
;@GetUserNameExA GetUserNameExA@12
;@GetUserNameExW GetUserNameExW@12
;@ImpersonateSecurityContext ;@ImpersonateSecurityContext
;@ImportSecurityContextA ;@ImportSecurityContextA
;@ImportSecurityContextW ;@ImportSecurityContextW

View file

@ -3,10 +3,13 @@
<include base="secur32">.</include> <include base="secur32">.</include>
<define name="__SECUR32__" /> <define name="__SECUR32__" />
<define name="__USE_W32API" /> <define name="__USE_W32API" />
<define name="_WIN32_WINNT">0x501</define>
<library>ntdll</library> <library>ntdll</library>
<library>kernel32</library> <library>kernel32</library>
<library>advapi32</library> <library>advapi32</library>
<file>dllmain.c</file> <file>dllmain.c</file>
<file>lsa.c</file> <file>lsa.c</file>
<file>secext.c</file>
<file>sspi.c</file>
<file>secur32.rc</file> <file>secur32.rc</file>
</module> </module>

View file

@ -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;
}

View file

@ -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*
);