PsIoRateControlReference
NTSTATUS __stdcall PsIoRateControlReference(
PVOID Base,
UINT8 MappedAsImage,
UINT16 DirectoryEntry,
UINT64 *Size,
PVOID *RawDirectory){
char *v5;
UINT64 *v8;
UINT64 v9;
UINT64 v10;
INT64 v11;
v5 = (char *)Base + 1400;
v8 = (UINT64 *)DirectoryEntry;
v9 = MappedAsImage;
v10 = PspIoRateEntryIoControlReference((struct EX_RUNDOWN_REF *)Base + 175);
*v8 = v10;
if( v10 )
*Size = *((_QWORD *)Base + 169);
else
v5 = 0i64;
*RawDirectory = v5;
v8[1] = 0i64;
RawDirectory[1] = 0i64;
v11 = *((_QWORD *)Base + 183);
if( (*((_BYTE *)Base + 1472) & 1) != 0 )
{
if( !v11 )
return v11;
v11 ^= (unsigned __int64)Base + 1464;
}
if( v11 )
{
if( v9 )
{
v11 = PspJobIoRateVolumeEntryReference((INT64)Base, v9);
if( v11 )
{
v8[1] = *(_QWORD *)(v11 + 40);
Size[1] = *(_QWORD *)(v11 + 48);
RawDirectory[1] = (PVOID)v11;
}
}
}
return v11;
}Referenced by:
IoGetIoRateControl