SMKM_STORE_MGR::SmStoreContentsRundown
__int64 __fastcall SMKM_STORE_MGR::SmStoreContentsRundown(__int64 a1, __int64 a2){
VOID **PoolWithTag;
__int64 v5;
VOID **v6;
int LowPart;
_EX_RUNDOWN_REF *v8;
_LARGE_INTEGER v10[2];
__int16 Object;
char v12;
int v13;
__int64 v14[3];
Object = 0;
v13 = 0;
v14[1] = (__int64)v14;
v12 = 6;
v14[0] = (__int64)v14;
*(_OWORD *)&v10[0].anonymous_0.LowPart = 0i64;
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x28ui64, 1683451251i64);
v6 = PoolWithTag;
if( PoolWithTag )
{
*(_OWORD *)PoolWithTag = 0i64;
*((_OWORD *)PoolWithTag + 1) = 0i64;
PoolWithTag[4] = 0i64;
*((_DWORD *)PoolWithTag + 2) = -1;
*(_DWORD *)PoolWithTag = 3;
LowPart = SMKM_STORE_MGR::SmStoreRequestEx(v5, a2, (__int64)PoolWithTag, (__int64)&Object, (_QWORD *)v10);
if( LowPart >= 0 )
{
KeWaitForSingleObject((UINT64)&Object, 0, 0, 0, 0i64);
LowPart = v10[0].anonymous_0.LowPart;
a2 = 0i64;
v6 = 0i64;
}
if( v6 )
ExFreePoolWithTag(v6, 0);
}
else
{
LowPart = -1073741670;
}
if( a2 )
{
v8 = (_EX_RUNDOWN_REF *)SmKmStoreRefFromStoreIndex(a1, *(_DWORD *)(a2 + 6016) & 0x3FF);
ExReleaseRundownProtection(v8 + 1);
}
return(unsigned int)LowPart;
}
Referenced by:
No references.