SmcProcessResizeRequest
NTSTATUS __stdcall SmcProcessResizeRequest(
_SMC_CACHE_MANAGER *CacheMgr,
VOID *UserData,
UINT64 UserDataLength,
INT8 RequestorMode){
NTSTATUS result;
__int64 v7;
unsigned int v8;
_SMC_STORE_RESIZE_REQUEST Request;
memset(&Request, 0, sizeof(Request));
if( (_DWORD)UserDataLength != 20 )
return -1073741306;
if( RequestorMode )
{
if( ((unsigned __int8)UserData & 3) != 0 )
ExRaiseDatatypeMisalignment();
v7 = 0x7FFFFFFF0000i64;
if( (unsigned __int64)UserData < 0x7FFFFFFF0000i64 )
v7 = (__int64)UserData;
*(_BYTE *)v7 = *(_BYTE *)v7;
*(_BYTE *)(v7 + 19) = *(_BYTE *)(v7 + 19);
}
*(_OWORD *)&Request._bf_0 = *(_OWORD *)UserData;
v8 = *((_DWORD *)UserData + 4);
Request.RegionCount = v8;
if( LOBYTE(Request._bf_0) != 1 )
return -1073741735;
if( (Request._bf_0 & 0xFFFFFE00) != 0 || !v8 || Request.StoreManagerType >= SmStoreManagerTypeMax )
return -1073741811;
result = SmcStoreResize(CacheMgr, &Request);
if( result >= 0 )
{
*(_SMC_STORE_RESIZE_REQUEST *)UserData = Request;
return 0;
}
return result;
}Referenced by:
SmSetStoreInformation