mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[SDB][APPHELP] Add ShimVersionNT data tags + read them in SdbPackAppCompatData
This commit is contained in:
parent
74bb9d5dc0
commit
bcb2613684
2 changed files with 32 additions and 1 deletions
|
@ -686,6 +686,7 @@ BOOL WINAPI SdbPackAppCompatData(HSDB hsdb, PSDBQUERYRESULT pQueryResult, PVOID*
|
||||||
ShimData* pData;
|
ShimData* pData;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
DWORD n;
|
DWORD n;
|
||||||
|
BOOL bCloseDatabase = FALSE;
|
||||||
|
|
||||||
if (!pQueryResult || !ppData || !pdwSize)
|
if (!pQueryResult || !ppData || !pdwSize)
|
||||||
{
|
{
|
||||||
|
@ -719,12 +720,33 @@ BOOL WINAPI SdbPackAppCompatData(HSDB hsdb, PSDBQUERYRESULT pQueryResult, PVOID*
|
||||||
pData->Query.dwFlags, pData->dwMagic, pData->Query.atrExes[0], pData->Query.atrLayers[0]);
|
pData->Query.dwFlags, pData->dwMagic, pData->Query.atrExes[0], pData->Query.atrLayers[0]);
|
||||||
|
|
||||||
/* Database List */
|
/* Database List */
|
||||||
/* 0x0 {GUID} NAME */
|
/* 0x0 {GUID} NAME: Use to open HSDB */
|
||||||
|
if (hsdb == NULL)
|
||||||
|
{
|
||||||
|
hsdb = SdbInitDatabase(HID_DOS_PATHS | SDB_DATABASE_MAIN_SHIM, NULL);
|
||||||
|
bCloseDatabase = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
for (n = 0; n < pQueryResult->dwLayerCount; ++n)
|
for (n = 0; n < pQueryResult->dwLayerCount; ++n)
|
||||||
{
|
{
|
||||||
|
DWORD dwValue = 0, dwType;
|
||||||
|
DWORD dwValueSize = sizeof(dwValue);
|
||||||
SHIM_INFO("Layer 0x%x\n", pQueryResult->atrLayers[n]);
|
SHIM_INFO("Layer 0x%x\n", pQueryResult->atrLayers[n]);
|
||||||
|
|
||||||
|
if (SdbQueryData(hsdb, pQueryResult->atrLayers[n], L"SHIMVERSIONNT", &dwType, &dwValue, &dwValueSize) == ERROR_SUCCESS &&
|
||||||
|
dwType == REG_DWORD && dwValueSize == sizeof(dwValue))
|
||||||
|
{
|
||||||
|
dwValue = (dwValue % 100) | ((dwValue / 100) << 8);
|
||||||
|
if (dwValue > pData->dwRosProcessCompatVersion)
|
||||||
|
pData->dwRosProcessCompatVersion = dwValue;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pData->dwRosProcessCompatVersion)
|
||||||
|
SHIM_INFO("Setting ProcessCompatVersion 0x%x\n", pData->dwRosProcessCompatVersion);
|
||||||
|
|
||||||
|
if (bCloseDatabase)
|
||||||
|
SdbReleaseDatabase(hsdb);
|
||||||
|
|
||||||
*ppData = pData;
|
*ppData = pData;
|
||||||
*pdwSize = pData->dwSize;
|
*pdwSize = pData->dwSize;
|
||||||
|
|
|
@ -283,38 +283,47 @@
|
||||||
</LAYER>
|
</LAYER>
|
||||||
<LAYER NAME="VISTARTM">
|
<LAYER NAME="VISTARTM">
|
||||||
<SHIM_REF NAME="VistaRTMVersionLie" />
|
<SHIM_REF NAME="VistaRTMVersionLie" />
|
||||||
|
<DATA NAME="SHIMVERSIONNT" DATA_DWORD="600" />
|
||||||
<!-- TODO: Add more fixes! -->
|
<!-- TODO: Add more fixes! -->
|
||||||
</LAYER>
|
</LAYER>
|
||||||
<LAYER NAME="VISTASP1">
|
<LAYER NAME="VISTASP1">
|
||||||
<SHIM_REF NAME="VistaSP1VersionLie" />
|
<SHIM_REF NAME="VistaSP1VersionLie" />
|
||||||
|
<DATA NAME="SHIMVERSIONNT" DATA_DWORD="600" />
|
||||||
<!-- TODO: Add more fixes! -->
|
<!-- TODO: Add more fixes! -->
|
||||||
</LAYER>
|
</LAYER>
|
||||||
<LAYER NAME="VISTASP2">
|
<LAYER NAME="VISTASP2">
|
||||||
<SHIM_REF NAME="VistaSP2VersionLie" />
|
<SHIM_REF NAME="VistaSP2VersionLie" />
|
||||||
|
<DATA NAME="SHIMVERSIONNT" DATA_DWORD="600" />
|
||||||
<!-- TODO: Add more fixes! -->
|
<!-- TODO: Add more fixes! -->
|
||||||
</LAYER>
|
</LAYER>
|
||||||
<LAYER NAME="WINSRV08">
|
<LAYER NAME="WINSRV08">
|
||||||
<SHIM_REF NAME="VistaRTMVersionLie" />
|
<SHIM_REF NAME="VistaRTMVersionLie" />
|
||||||
|
<DATA NAME="SHIMVERSIONNT" DATA_DWORD="600" />
|
||||||
<!-- TODO: Add more fixes! -->
|
<!-- TODO: Add more fixes! -->
|
||||||
</LAYER>
|
</LAYER>
|
||||||
<LAYER NAME="WINSRV08SP1">
|
<LAYER NAME="WINSRV08SP1">
|
||||||
<SHIM_REF NAME="VistaSP1VersionLie" />
|
<SHIM_REF NAME="VistaSP1VersionLie" />
|
||||||
|
<DATA NAME="SHIMVERSIONNT" DATA_DWORD="600" />
|
||||||
<!-- TODO: Add more fixes! -->
|
<!-- TODO: Add more fixes! -->
|
||||||
</LAYER>
|
</LAYER>
|
||||||
<LAYER NAME="WINSRV08SP2">
|
<LAYER NAME="WINSRV08SP2">
|
||||||
<SHIM_REF NAME="VistaSP2VersionLie" />
|
<SHIM_REF NAME="VistaSP2VersionLie" />
|
||||||
|
<DATA NAME="SHIMVERSIONNT" DATA_DWORD="600" />
|
||||||
<!-- TODO: Add more fixes! -->
|
<!-- TODO: Add more fixes! -->
|
||||||
</LAYER>
|
</LAYER>
|
||||||
<LAYER NAME="WIN7RTM">
|
<LAYER NAME="WIN7RTM">
|
||||||
<SHIM_REF NAME="Win7RTMVersionLie" />
|
<SHIM_REF NAME="Win7RTMVersionLie" />
|
||||||
|
<DATA NAME="SHIMVERSIONNT" DATA_DWORD="601" />
|
||||||
<!-- TODO: Add more fixes! -->
|
<!-- TODO: Add more fixes! -->
|
||||||
</LAYER>
|
</LAYER>
|
||||||
<LAYER NAME="WIN8RTM">
|
<LAYER NAME="WIN8RTM">
|
||||||
<SHIM_REF NAME="Win8RTMVersionLie" />
|
<SHIM_REF NAME="Win8RTMVersionLie" />
|
||||||
|
<DATA NAME="SHIMVERSIONNT" DATA_DWORD="602" />
|
||||||
<!-- TODO: Add more fixes! -->
|
<!-- TODO: Add more fixes! -->
|
||||||
</LAYER>
|
</LAYER>
|
||||||
<LAYER NAME="WIN81RTM">
|
<LAYER NAME="WIN81RTM">
|
||||||
<SHIM_REF NAME="Win81RTMVersionLie" />
|
<SHIM_REF NAME="Win81RTMVersionLie" />
|
||||||
|
<DATA NAME="SHIMVERSIONNT" DATA_DWORD="603" />
|
||||||
<!-- TODO: Add more fixes! -->
|
<!-- TODO: Add more fixes! -->
|
||||||
</LAYER>
|
</LAYER>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue