KsepEngineInitialize
__int64 __fastcall KsepEngineInitialize(_QWORD *a1){
INT64 v2;
void *v3;
INT64 v4;
__int64 result;
__int64 v6;
if( !a1 )
{
v6 = ((unsigned __int8)_InterlockedExchangeAdd(&KsepHistoryErrorsIndex, 1u) + 1) & 0x3F;
KsepHistoryErrors[2 * v6 + 1] = -1073740768;
KsepHistoryErrors[2 * v6] = 131872;
if( (KsepDebugFlag & 4) != 0 )
RtlAssert("Engine != NULL", "minkernel\\ntos\\kshim\\ksecore.c", 0x320u, 0i64);
}
a1[3] = a1 + 2;
a1[2] = a1 + 2;
a1[5] = a1 + 4;
a1[4] = a1 + 4;
a1[6] = 0i64;
v2 = KsepCacheInitialize(a1, (UINT64 *)KsepCacheDeviceEqual);
a1[9] = v2;
if( !v2 )
return 3221225495i64;
v4 = KsepCacheInitialize(v3, (UINT64 *)KsepCacheHwIdEqual);
a1[10] = v4;
if( !v4 )
return 3221225495i64;
a1[7] = KseGetIoCallbacks;
a1[8] = KseSetCompletionHook;
result = KsepEngineReadFlags((unsigned int *)KseEngine);
if( (int)result >= 0 && (*(_BYTE *)KseEngine & 3) == 3 )
return 3221225659i64;
return result;
}Referenced by:
KseInitialize