KsepSdbBootInitialize
NTSTATUS __stdcall KsepSdbBootInitialize(VOID *Src, size_t Size){
__int64 v2;
__int64 v5;
VOID *Paged;
NTSTATUS v7;
VOID *v8;
INT64 v9;
_DB **inited;
__int64 v12;
__int64 v13;
v5 = v2;
Paged = KsepPoolAllocatePaged(Size);
v7 = 0;
v8 = Paged;
if( Paged )
{
memmove(Paged, Src, Size);
inited = (_DB **)SdbInitDatabaseInMemory(v8, Size, v9);
if( inited )
{
*(_QWORD *)(v5 + 8) = v8;
*(_QWORD *)v5 = inited;
*(_DWORD *)(v5 + 48) = SdbGetDatabaseEdition(inited[1]);
}
else
{
v7 = -1073741823;
v13 = ((unsigned __int8)_InterlockedExchangeAdd(&KsepHistoryErrorsIndex, 1u) + 1) & 0x3F;
KsepHistoryErrors[2 * v13 + 1] = -1073741823;
KsepHistoryErrors[2 * v13] = 590004;
if( (KsepDebugFlag & 2) != 0 )
KsepDebugPrint(1i64, "KSE: SdbInitDatabaseInMemory failed during boot!\n");
KsepLogError(1, "KSE: SdbInitDatabaseInMemory failed during boot!\n");
KsepPoolFreePaged(v8);
}
}
else
{
v7 = -1073741670;
v12 = ((unsigned __int8)_InterlockedExchangeAdd(&KsepHistoryErrorsIndex, 1u) + 1) & 0x3F;
KsepHistoryErrors[2 * v12 + 1] = -1073741670;
KsepHistoryErrors[2 * v12] = 589988;
if( (KsepDebugFlag & 2) != 0 )
KsepDebugPrint(0i64, "KSE: Failed to allocate memory for shim database during boot!\n");
KsepLogError(0, "KSE: Failed to allocate memory for shim database during boot!\n");
}
return v7;
}Referenced by:
KseShimDatabaseBootInitialize