You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.4 KiB
88 lines
2.4 KiB
/*++
|
|
|
|
Copyright (c) 2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
DongFangKuaiChe3000Setup.cpp
|
|
|
|
Abstract:
|
|
|
|
At the end of setup, the app is calling CreateProcessA with following
|
|
|
|
"rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 \Z:\act\DongFangKuaiChe3000Pro\dfkc3000\MultiLanguage\Chinese\cn.inf"
|
|
|
|
there are altogether 4 calls to install Japanese/Chinese/Korean languagepack
|
|
(lagacy IE's langpack). The '\' before Z:\act\DongFang... is an extra one
|
|
and caused rundll32.exe fails in NT.
|
|
|
|
Notes:
|
|
|
|
This shim is to disable calls to install lagacy IE langpack, since NT has
|
|
already it's own.
|
|
|
|
History:
|
|
|
|
07/09/2001 xiaoz Created
|
|
|
|
--*/
|
|
|
|
#include "precomp.h"
|
|
|
|
IMPLEMENT_SHIM_BEGIN(DongFangKuaiChe3000Setup)
|
|
#include "ShimHookMacro.h"
|
|
|
|
APIHOOK_ENUM_BEGIN
|
|
APIHOOK_ENUM_ENTRY(CreateProcessA)
|
|
APIHOOK_ENUM_END
|
|
|
|
|
|
BOOL
|
|
APIHOOK(CreateProcessA)(
|
|
LPCSTR lpApplicationName, // name of executable module
|
|
LPSTR lpCommandLine, // command line string
|
|
LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
|
|
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
|
|
BOOL bInheritHandles, // handle inheritance option
|
|
DWORD dwCreationFlags, // creation flags
|
|
LPVOID lpEnvironment, // new environment block
|
|
LPCSTR lpCurrentDirectory, // current directory name
|
|
LPSTARTUPINFOA lpStartupInfo, // startup information
|
|
LPPROCESS_INFORMATION lpProcessInformation // process information
|
|
)
|
|
{
|
|
CSTRING_TRY
|
|
{
|
|
CString cstrPattern = L"rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 \\";
|
|
CString cstrCmdLine(lpCommandLine);
|
|
int nIndex;
|
|
|
|
nIndex = cstrCmdLine.Find(cstrPattern);
|
|
|
|
if ( nIndex >=0 )
|
|
{
|
|
return TRUE;
|
|
}
|
|
}
|
|
CSTRING_CATCH
|
|
{
|
|
// Do Nothing
|
|
}
|
|
|
|
return ORIGINAL_API(CreateProcessA)(lpApplicationName, lpCommandLine,
|
|
lpProcessAttributes, lpThreadAttributes, bInheritHandles,
|
|
dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo,
|
|
lpProcessInformation);
|
|
}
|
|
|
|
/*++
|
|
|
|
Register hooked functions
|
|
|
|
--*/
|
|
|
|
HOOK_BEGIN
|
|
APIHOOK_ENTRY(KERNEL32.DLL, CreateProcessA)
|
|
HOOK_END
|
|
|
|
IMPLEMENT_SHIM_END
|