SdbpOpenDatabaseInMemory
_DB *__stdcall SdbpOpenDatabaseInMemory(VOID *pImageDatabase, UINT64 dwSize, INT64 a3){
_KEXCEPTION_VERIFY v3;
_KEXCEPTION_VERIFY *v5;
_KEXCEPTION_VERIFY *v6;
int v7;
__int64 pBuffer;
int v10;
v3 = dwSize;
pBuffer = 0i64;
v10 = 0;
v5 = (_KEXCEPTION_VERIFY *)AslAlloc(pImageDatabase, 1408, a3);
v6 = v5;
if( v5 )
{
v5[4] = 0;
v5[6] |= 1u;
*(_QWORD *)v5 = 0i64;
*((_QWORD *)v5 + 1) = pImageDatabase;
v5[5] = v3;
if( SdbpReadMappedData(v5, 0i64, &pBuffer, 0xCui64) )
{
SdbpValidateAndApplyCompatFlags(v6);
if( v7 )
return v6;
}
else
{
AslLogCallPrintf(1ui64, (INT8 *)"SdbpOpenDatabaseInMemory", 0x458ui64, (INT8 *)"Can't read database header");
}
ExFreePoolWithTag(v6, 0x74705041u);
}
else
{
AslLogCallPrintf(1ui64, (INT8 *)"SdbpOpenDatabaseInMemory", 0x44Dui64, (INT8 *)"Failed to allocate DB structure");
}
return 0i64;
}Referenced by:
SdbInitDatabaseInMemory
SdbpOpenCompressedDatabase