ReactOS 0.4.16-dev-927-g467dec4
|
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
#include "strsafe.h"
#include "apphelp.h"
#include <ndk/rtlfuncs.h>
#include <ndk/cmfuncs.h>
#include <ndk/obfuncs.h>
#include <ndk/kdtypes.h>
Go to the source code of this file.
Macros | |
#define | WIN32_NO_STATUS |
#define | DPFLTR_APPCOMPAT_ID 123 |
#define | MAX_GUID_STRING_LEN RTL_NUMBER_OF("{12345678-1234-1234-0123-456789abcdef}") |
#define | NT_SUCCESS(StatCode) ((NTSTATUS)(StatCode) >= 0) |
#define | APPHELP_DONTWRITE_REASON 2 |
#define | APPHELP_CLEARBITS 0x100 /* TODO: Investigate */ |
#define | APPHELP_IGNORE_ENVIRONMENT 0x400 |
#define | APPHELP_VALID_RESULT 0x10000 |
#define | APPHELP_RESULT_NOTFOUND 0x20000 |
#define | APPHELP_RESULT_FOUND 0x40000 |
Functions | |||||||||
ACCESS_MASK | Wow64QueryFlag (void) | ||||||||
C_ASSERT (MAX_GUID_STRING_LEN==39) | |||||||||
void | ApphelppInitDebugLevel (void) | ||||||||
BOOL WINAPI | DllMain (HINSTANCE hinst, DWORD reason, LPVOID reserved) | ||||||||
BOOL WINAPI | ApphelpCheckInstallShieldPackage (void *ptr, LPCWSTR path) | ||||||||
BOOL WINAPI | ApphelpCheckShellObject (REFCLSID ObjectCLSID, BOOL bShimIfNecessary, ULONGLONG *pullFlags) | ||||||||
BOOL WINAPIV | ShimDbgPrint (SHIM_LOG_LEVEL Level, PCSTR FunctionName, PCSTR Format,...) | ||||||||
BOOL WINAPI | ApphelpCheckRunAppEx (_In_ HANDLE FileHandle, _In_opt_ PVOID Unk1, _In_opt_ PVOID Unk2, _In_opt_z_ PCWSTR ApplicationName, _In_opt_ PVOID Environment, _In_opt_ USHORT ExeType, _Inout_opt_ PULONG Reason, _Out_opt_ PVOID *SdbQueryAppCompatData, _Out_opt_ PULONG SdbQueryAppCompatDataSize, _Out_opt_ PVOID *SxsData, _Out_opt_ PULONG SxsDataSize, _Out_opt_ PULONG FusionFlags, _Out_opt_ PULONG64 SomeFlag1, _Out_opt_ PULONG SomeFlag2) | ||||||||
SdbRegisterDatabaseEx | |||||||||
Register an application compatibility database
| |||||||||
BOOL WINAPI | SdbRegisterDatabaseEx (_In_ LPCWSTR pszDatabasePath, _In_ DWORD dwDatabaseType, _In_opt_ const PULONGLONG pTimeStamp) | ||||||||
SdbRegisterDatabase | |||||||||
Register an application compatibility database
| |||||||||
BOOL WINAPI | SdbRegisterDatabase (_In_ LPCWSTR pszDatabasePath, _In_ DWORD dwDatabaseType) | ||||||||
SdbUnregisterDatabase | |||||||||
| |||||||||
BOOL WINAPI | SdbUnregisterDatabase (_In_ const GUID *pguidDB) | ||||||||
BOOL WINAPI | BaseDumpAppcompatCache (VOID) | ||||||||
BOOL WINAPI | BaseFlushAppcompatCache (VOID) | ||||||||
ShimDumpCache | |||||||||
Dump contents of the shim cache.
| |||||||||
BOOL WINAPI | ShimDumpCache (HWND hwnd, HINSTANCE hInstance, LPCSTR lpszCmdLine, int nCmdShow) | ||||||||
ShimFlushCache | |||||||||
Flush the shim cache. Call this after installing a new shim database
| |||||||||
BOOL WINAPI | ShimFlushCache (HWND hwnd, HINSTANCE hInstance, LPCSTR lpszCmdLine, int nCmdShow) | ||||||||
Variables | |
const UNICODE_STRING | InstalledSDBKeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\InstalledSDB") |
ULONG | g_ShimDebugLevel = ~0 |
HMODULE | g_hInstance |
#define MAX_GUID_STRING_LEN RTL_NUMBER_OF("{12345678-1234-1234-0123-456789abcdef}") |
BOOL WINAPI ApphelpCheckRunAppEx | ( | _In_ HANDLE | FileHandle, |
_In_opt_ PVOID | Unk1, | ||
_In_opt_ PVOID | Unk2, | ||
_In_opt_z_ PCWSTR | ApplicationName, | ||
_In_opt_ PVOID | Environment, | ||
_In_opt_ USHORT | ExeType, | ||
_Inout_opt_ PULONG | Reason, | ||
_Out_opt_ PVOID * | SdbQueryAppCompatData, | ||
_Out_opt_ PULONG | SdbQueryAppCompatDataSize, | ||
_Out_opt_ PVOID * | SxsData, | ||
_Out_opt_ PULONG | SxsDataSize, | ||
_Out_opt_ PULONG | FusionFlags, | ||
_Out_opt_ PULONG64 | SomeFlag1, | ||
_Out_opt_ PULONG | SomeFlag2 | ||
) |
Lookup Shims / Fixes for the specified application
[in] | FileHandle | Handle to the file to check. |
[in] | Unk1 | |
[in] | Unk2 | |
[in] | ApplicationName | Exe to check |
[in] | Environment | The environment variables to use, or NULL to use the current environment. |
[in] | ExeType | Exe type (MACHINE_TYPE_XXXX) |
[in,out] | Reason | Input/output flags |
[in] | SdbQueryAppCompatData | The resulting data. |
[in] | SdbQueryAppCompatDataSize | The resulting data size. |
[in] | SxsData | TODO |
[in] | SxsDataSize | TODO |
[in] | FusionFlags | TODO |
[in] | SomeFlag1 | TODO |
[in] | SomeFlag2 | TODO |
Definition at line 185 of file apphelp.c.
BOOL WINAPI ApphelpCheckShellObject | ( | REFCLSID | ObjectCLSID, |
BOOL | bShimIfNecessary, | ||
ULONGLONG * | pullFlags | ||
) |
Definition at line 83 of file apphelp.c.
Referenced by START_TEST().
Definition at line 39 of file apphelp.c.
Referenced by ShimDbgPrint().
Definition at line 418 of file appcache.c.
Referenced by ShimDumpCache().
C_ASSERT | ( | MAX_GUID_STRING_LEN | = =39 | ) |
Definition at line 60 of file apphelp.c.
Definition at line 392 of file apphelp.c.
BOOL WINAPI SdbRegisterDatabaseEx | ( | _In_ LPCWSTR | pszDatabasePath, |
_In_ DWORD | dwDatabaseType, | ||
_In_opt_ const PULONGLONG | pTimeStamp | ||
) |
Definition at line 262 of file apphelp.c.
Referenced by SdbInstall(), and SdbRegisterDatabase().
Definition at line 407 of file apphelp.c.
Referenced by SdbUninstall().
BOOL WINAPIV ShimDbgPrint | ( | SHIM_LOG_LEVEL | Level, |
PCSTR | FunctionName, | ||
PCSTR | Format, | ||
... | |||
) |
Outputs diagnostic info.
[in] | Level | The level to log this message with, choose any of [SHIM_ERR, SHIM_WARN, SHIM_INFO]. |
[in] | FunctionName | The function this log should be attributed to. |
[in] | Format | The format string. |
... | Variable arguments providing additional information. |
Definition at line 107 of file apphelp.c.
ACCESS_MASK Wow64QueryFlag | ( | void | ) |
Definition at line 179 of file layer.c.
Referenced by SdbpOpenKey(), SdbRegisterDatabaseEx(), and SdbUnregisterDatabase().
ULONG g_ShimDebugLevel = ~0 |
Definition at line 36 of file apphelp.c.
Referenced by ApphelppInitDebugLevel(), and ShimDbgPrint().
const UNICODE_STRING InstalledSDBKeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\InstalledSDB") |
Definition at line 24 of file apphelp.c.
Referenced by SdbRegisterDatabaseEx(), and SdbUnregisterDatabase().