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

88 lines
1.3 KiB
C++

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
Quicken2000.cpp
Abstract:
Change the value of a registry key for Quicken 2000 setup.
This is needed to disable a kernel mode driver that
blue-screens in Win2k.
Notes:
This is an app specific shim.
History:
02/16/2000 clupu Created
--*/
#include "precomp.h"
IMPLEMENT_SHIM_BEGIN(Quicken2000)
#include "ShimHookMacro.h"
APIHOOK_ENUM_BEGIN
APIHOOK_ENUM_ENTRY(RegSetValueExA)
APIHOOK_ENUM_END
/*++
Change the value passed for "Start" from 0 to 4 to prevent a kernel mode
driver from blue-screening Win2k.
--*/
LONG
APIHOOK(RegSetValueExA)(
HKEY hKey,
LPCSTR lpValueName,
DWORD Reserved,
DWORD dwType,
CONST BYTE * lpData,
DWORD cbData
)
{
if (lstrcmpA(lpValueName, "Start") == 0 &&
dwType == REG_DWORD &&
cbData == 4) {
DPFN( eDbgLevelInfo, "[Quicken2000] RegSetValueExA changed to 4");
*(DWORD*)lpData = 4;
}
/*
* Call the original API
*/
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