PopSetHiberFileSize
NTSTATUS __stdcall PopSetHiberFileSize(UINT64 Percent, UINT64 *HiberFileSize){
int v3;
UINT64 v4;
INT64 v5;
int v6;
VOID *Data;
INT64 DataSize;
UINT64 DataSizea;
_UNICODE_STRING DestinationString[2];
VOID *Handle;
UINT64 HiberFileSizea;
HiberFileSizea = 0i64;
Handle = 0i64;
DestinationString[0] = 0i64;
if( (unsigned int)Percent > 0x64 )
return -1073741811;
v3 = PopHiberFileSizePercent;
PopHiberFileSizePercent = Percent;
PopCalculateHiberFileSize(&HiberFileSizea, 0i64);
v4 = HiberFileSizea;
v6 = PopValidateHiberFileSize(
HiberFileSizea,
0i64,
0i64,
v5,
(INT64)Data,
DataSize,
*(INT64 *)&DestinationString[0].Length,
(INT64)DestinationString[0].Buffer);
if( v6 < 0
|| (unsigned int)PopHiberFileSizePercent >= 0x28 && (v6 = PopSetHiberFileType(2ui64, 0i64), v6 < 0)
|| (v6 = PopOpenKey(&Handle, (WCHAR *)L"Control\\Power", 0x20006ui64), v6 < 0)
|| (RtlInitUnicodeString(DestinationString, L"HiberFileSizePercent"),
LODWORD(DataSizea) = 4,
v6 = ZwSetValueKey(Handle, DestinationString, 0i64, 4ui64, &PopHiberFileSizePercent, DataSizea),
ZwClose((_HANDLE)Handle),
v6 < 0) )
{
PopHiberFileSizePercent = v3;
}
else if( HiberFileSize )
{
*HiberFileSize = v4;
}
return v6;
}Referenced by:
NtPowerInformation