PspSanitizeResourceLimits
NTSTATUS __stdcall PspSanitizeResourceLimits(PS_QUOTA_LIMIT *Limits, UINT64 AcceptInvalidLimit){
int v2;
char *v3;
int v4;
PS_QUOTA_LIMIT *v5;
unsigned int v6;
unsigned int v7;
unsigned int v9;
v2 = 0;
v3 = PspResourceFlags;
v4 = AcceptInvalidLimit;
v5 = Limits;
do
{
if( (*v3 & 2) != 0 )
{
v9 = *v5;
if( (*v5 & 0x7Fu) - 1 > 0x63 || v9 >= 0x80 )
{
if( !v4 )
return -1073741811;
*v5 = v9 & 0xFFFFFF80 | 0x64;
}
}
else if( (*v3 & 1) != 0 && !*v5 )
{
*v5 = -1;
}
++v2;
v3 += 8;
++v5;
}
while( v2 < 4 );
v6 = *Limits;
if( *Limits != -1 )
{
if( v6 >= 0xFFF )
{
if( !v4 )
return -1073741811;
*Limits = -1;
}
else
{
*Limits = v6 << 20;
}
}
v7 = Limits[1];
if( v7 == -1 )
return 0;
if( v7 < 0xFFF )
{
Limits[1] = v7 << 20;
return 0;
}
if( v4 )
{
Limits[1] = -1;
return 0;
}
return -1073741811;
}Referenced by:
PsInitializeQuotaSystem
PspReadUserQuotaLimits