SdbpOpenDatabaseInMemory
VOID *__fastcall SdbpOpenDatabaseInMemory(VOID *a1, INT64 a2, INT64 a3){
int v3;
_QWORD *v5;
VOID *v6;
__int64 v8;
__int64 v9;
v3 = a2;
v8 = 0i64;
LODWORD(v9) = 0;
v5 = AslAlloc(a1, 0x580ui64, a3);
v6 = v5;
if( v5 )
{
*((_DWORD *)v5 + 4) = 0;
*((_DWORD *)v5 + 6) |= 1u;
*v5 = 0i64;
v5[1] = a1;
*((_DWORD *)v5 + 5) = v3;
if( (unsigned int)SdbpReadMappedData((INT64)v5, 0i64, &v8, 0xCui64) )
{
if( (unsigned int)SdbpValidateAndApplyCompatFlags((__int64)v6, &v8) )
return v6;
}
else
{
AslLogCallPrintf(1ui64, "SdbpOpenDatabaseInMemory", 0x458ui64, "Can't read database header", v8, v9);
}
ExFreePoolWithTag(v6, 0x74705041u);
}
else
{
AslLogCallPrintf(1ui64, "SdbpOpenDatabaseInMemory", 0x44Dui64, "Failed to allocate DB structure", v8, v9);
}
return 0i64;
}Referenced by:
SdbInitDatabaseInMemory
SdbpOpenCompressedDatabase