SdbInitDatabaseInMemory
VOID *__stdcall SdbInitDatabaseInMemory(VOID *pDatabaseImage, UINT64 dwImageSize, INT64 a3){
unsigned int v3;
VOID *v5;
INT64 v6;
_DB *v7;
_DB *v9;
v3 = dwImageSize;
v5 = AslAlloc(pDatabaseImage, 1008, a3);
if( v5 )
{
v7 = SdbpOpenDatabaseInMemory(pDatabaseImage, v3, v6);
*((_QWORD *)v5 + 1) = v7;
if( v7 )
{
*((_DWORD *)v5 + 6) = 1;
*((_DWORD *)v5 + 7) = 1;
*((_DWORD *)v5 + 14) = 2;
*((_QWORD *)v5 + 6) = v7;
*((_OWORD *)v5 + 2) = *(_OWORD *)(v7 + 7);
SdbpInitializeMatchers((tagSDBCONTEXT *)v5);
return v5;
}
AslLogCallPrintf(1ui64, (INT8 *)"SdbInitDatabaseInMemory", 0x416ui64, (INT8 *)"Unable to open main database");
v9 = (_DB *)*((_QWORD *)v5 + 1);
if( v9 )
SdbCloseDatabaseRead(v9);
ExFreePoolWithTag(v5, 0x74705041u);
}
else
{
AslLogCallPrintf(1ui64, (INT8 *)"SdbInitDatabaseInMemory", 0x40Dui64, (INT8 *)"Failed to allocate sdbcontext");
}
return 0i64;
}Referenced by:
KsepSdbBootInitialize
KsepSdbMapToMemory
PiInitializeDDB
PpBootDDBHelper