SmStoreCreate
VOID __fastcall SmStoreCreate(_SM_STORE_MANAGER_TYPE StoreManagerType, INT64 CreateParams){
_DWORD *v2;
__int128 v3;
__int128 v4;
_DWORD *v5;
__int128 v6;
NTSTATUS v7;
int v8;
UINT64 v9;
UINT64 Information;
INT64 SystemInformation;
INT64 *p_RequestBuffer;
INT64 v13;
INT64 RequestBuffer;
__int128 v15;
__int128 v16;
__int128 v17;
__int128 v18;
__int64 v19;
__int64 v20;
v3 = *(_OWORD *)CreateParams;
v4 = *(_OWORD *)(CreateParams + 16);
Information = 0i64;
v5 = v2;
v15 = v3;
p_RequestBuffer = &RequestBuffer;
v6 = *(_OWORD *)(CreateParams + 32);
SystemInformation = 0x300000001i64;
v13 = 88i64;
RequestBuffer = 6i64;
v20 = 0i64;
v17 = v6;
v19 = *(_QWORD *)(CreateParams + 64);
v16 = v4;
v18 = *(_OWORD *)(CreateParams + 48);
if( StoreManagerType )
{
if( StoreManagerType != SmStoreManagerTypeVirtual )
return;
v7 = ZwSetSystemInformation(SystemStoreInformation, &SystemInformation, 0x18ui64);
v8 = v20;
}
else
{
LODWORD(v9) = 0;
v7 = SmStorePhysicalRequestIssue(
DeviceObject,
0x228198ui64,
&RequestBuffer,
0x58ui64,
v9,
&Information,
Information,
SystemInformation,
(INT64)p_RequestBuffer,
v13,
RequestBuffer,
v15,
*((INT64 *)&v15 + 1),
v16,
*((INT64 *)&v16 + 1),
v17,
*((INT64 *)&v17 + 1),
v18);
v8 = Information;
}
if( v7 >= 0 )
*v5 = v8;
}Referenced by:
SmcStoreCreate