SmpDirtyStoreCreate
NTSTATUS __fastcall SmpDirtyStoreCreate(_SMKM_STORE_LIST *StoreMgr, unsigned int a2, int a3, _DWORD *a4){
__int64 v4;
int v8;
bool v9;
unsigned __int64 v10;
NTSTATUS result;
int UserData[24];
v4 = a2;
memset(UserData, 0i64, 0x58u);
UserData[3] = 128;
UserData[4] = 0x20000;
UserData[0] = ((a3 & 1) << 9) | 0x106;
v8 = 0;
if( a3 )
v9 = (dword_140D23180 & 0xC) == 8;
else
v9 = (dword_140D23180 & 3) == 2;
LOBYTE(v8) = v9;
v10 = (8 * v4) & 0x7FFFFFFFFFFFi64;
UserData[2] = UserData[2] & 0xFFF4FF00 | ((dword_140D23180 & 0x10 | 0x40) << 12) & 0xFFF5FFFF | (((16 * v8) | dword_140D23180 & 0x40) << 13);
if( v10 >= 0x40000 )
LODWORD(v10) = 0x40000;
UserData[5] = v10;
result = SmProcessCreateRequest(StoreMgr, UserData, 88i64, 0);
if( result >= 0 )
{
*a4 = UserData[20];
return 0;
}
return result;
}Referenced by:
SmpKeyedStoreCreate
SmpSystemStoreCreate