windows-nt/Source/XPSP1/NT/windows/appcompat/shims/specific/baanerp5c.cpp
2020-09-26 16:20:57 +08:00

99 lines
1.9 KiB
C++

/*++
Copyright (c) 2001 Microsoft Corporation
Module Name:
BaanERP5c.cpp
Abstract:
The app sets the SharedSection in Windows Value under the key
HKLM\System\CCS\Control\Session Manger\SubSystems to 4096
from the one that is exisiting in registry. But this is resulting
in failure of the BannLogicService and BaanSharedMemroy
services when they are started.
This shim hooks the RegSetValueExA and returns SUCCESS
without setting the value in registry if the app is trying to set the
HKLM\\System\CCS\Control\Session Manager\SubSystems\Windows
value from *SharedSection=####,####,512,* to *SharedSection=####,####,4096,*
Notes:
This is an app specific shim.
History:
02/09/2001 a-leelat Created
--*/
#include "precomp.h"
IMPLEMENT_SHIM_BEGIN(BaanERP5c)
#include "ShimHookMacro.h"
APIHOOK_ENUM_BEGIN
APIHOOK_ENUM_ENTRY(RegSetValueExA)
APIHOOK_ENUM_END
LONG
APIHOOK(RegSetValueExA)(
HKEY hKey,
LPCSTR lpValueName,
DWORD Reserved,
DWORD dwType,
CONST BYTE * lpData,
DWORD cbData
)
{
CSTRING_TRY
{
CString csValueName(lpValueName);
if (csValueName.CompareNoCase(L"Windows") == 0 )
{
LPSTR lpszData = (LPSTR)lpData;
CString csData(lpszData);
if (csData.Find(L"4096") >= 0)
{
return ERROR_SUCCESS;
}
}
}
CSTRING_CATCH
{
// Do nothing
}
return ORIGINAL_API(RegSetValueExA)(hKey,
lpValueName,
Reserved,
dwType,
lpData,
cbData);
}
/*++
Register hooked functions
--*/
HOOK_BEGIN
APIHOOK_ENTRY(ADVAPI32.DLL, RegSetValueExA);
HOOK_END
IMPLEMENT_SHIM_END