SdbGetEntryFlags
INT64 __stdcall SdbGetEntryFlags(_GUID *pGuid, UINT64 *lpdwFlags){
int v3;
const WCHAR *v4;
const WCHAR *v5;
int AppCompatFlagsByExeID;
int v7;
UINT64 dwFlags[2];
__int16 GuidOut[40];
*(_DWORD *)lpdwFlags = 0;
v3 = AslGuidToString((WCHAR *)GuidOut, (GUID *)0x27);
if( v3 < 0 )
{
AslLogCallPrintf(1ui64, "SdbGetEntryFlags", 0x7Dui64, "Failed to convert EXE id to string [%x]", v3);
}
else
{
LODWORD(dwFlags[0]) = 0;
if( (int)SdbpQueryAppCompatFlagsByExeID(v4, (const WCHAR *)GuidOut, 1i64, dwFlags) >= 0 )
*(_DWORD *)lpdwFlags = dwFlags[0];
LODWORD(dwFlags[0]) = 0;
AppCompatFlagsByExeID = SdbpQueryAppCompatFlagsByExeID(v5, (const WCHAR *)GuidOut, 0i64, dwFlags);
v7 = *(_DWORD *)lpdwFlags;
if( AppCompatFlagsByExeID >= 0 )
LOWORD(v7) = LOWORD(dwFlags[0]) | v7;
*(_DWORD *)lpdwFlags = v7 & 0xFFF;
}
return 1i64;
}Referenced by:
SdbReadEntryInformation
SdbpGetExeEntryFlags