IopCheckGetQuotaBufferValidity
INT64 __stdcall IopCheckGetQuotaBufferValidity(
FILE_GET_QUOTA_INFORMATION *QuotaBuffer,
UINT64 QuotaLength,
UINT64 *ErrorOffset){
int v4;
int v5;
FILE_GET_QUOTA_INFORMATION *v6;
int v7;
__int64 NextEntryOffset;
int v9;
v4 = QuotaLength;
v5 = (int)QuotaBuffer;
v6 = QuotaBuffer;
if( (int)QuotaLength >= 20 )
{
while( RtlValidSid(&v6->Sid) )
{
v7 = RtlLengthSid(&v6->Sid);
NextEntryOffset = v6->NextEntryOffset;
v9 = v7 + 8;
if( !(_DWORD)NextEntryOffset )
{
if( v4 - v9 < 0 )
break;
return 0i64;
}
if( v9 <= (int)NextEntryOffset && (NextEntryOffset & 3) == 0 )
{
v4 -= NextEntryOffset;
if( v4 >= 0 )
{
v6 = (FILE_GET_QUOTA_INFORMATION *)((char *)v6 + NextEntryOffset);
if( v4 >= 20 )
continue;
}
}
break;
}
}
*ErrorOffset = (unsigned int)((_DWORD)v6 - v5);
return 3221226086i64;
}Referenced by:
NtQueryQuotaInformationFile