PfpQueryGpuUtilization
NTSTATUS __stdcall PfpQueryGpuUtilization(_SUPERFETCH_INFORMATION *Info, INT8 PreviousMode, UINT64 *ReturnSize){
NTSTATUS result;
UINT64 SessionId;
__int128 Parameters;
Parameters = 0i64;
if( (unsigned int)Info[6] < 0x10 )
return -1073741306;
if( PreviousMode )
ProbeForWrite(*((_QWORD *)Info + 2), 16i64, 8i64);
Parameters = *(_OWORD *)*((_QWORD *)Info + 2);
if( (_DWORD)Parameters != 1 )
return -1073741735;
LODWORD(SessionId) = DWORD1(Parameters);
if( DWORD1(Parameters) == -1 )
LODWORD(SessionId) = MmGetSessionIdEx(KeGetCurrentThread()->ApcState.Process);
result = PsInvokeWin32Callout(
Win32GetGpuStatisticsCallout,
(char *)&Parameters + 8,
PsWin32SessionAttachSingle,
&SessionId);
if( result >= 0 )
{
*(_OWORD *)*((_QWORD *)Info + 2) = Parameters;
*(_DWORD *)ReturnSize = 16;
return 0;
}
return result;
}Referenced by:
PfQuerySuperfetchInformation