SmpSystemStoreCreate
NTSTATUS __stdcall SmpSystemStoreCreate(){
_ETHREAD *CurrentThread;
int v1;
int v3;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v3 = 0;
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockExclusiveEx(&stru_140D231B8, 0i64);
if( dword_140D231B0 == -1 )
{
v1 = SmpDirtyStoreCreate(
(_SMKM_STORE_LIST *)SmGlobals,
(unsigned int)(*(_QWORD *)(**(&stru_140C4DB30 + 267) + 6928i64) >> 8) >> 1,
0,
&v3);
if( v1 >= 0 )
dword_140D231B0 = v3;
}
else
{
v1 = -1073740008;
}
if( (_InterlockedExchangeAdd64(&stru_140D231B8._bf_0, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock(&stru_140D231B8);
KeAbPostRelease(&stru_140D231B8);
KeLeaveCriticalRegion();
return v1;
}Referenced by:
MiCreatePagingFile
SmProcessConfigRequest