RtlPcToFileName
NTSTATUS __stdcall RtlPcToFileName(VOID *PcValue, _UNICODE_STRING *FileName){
NTSTATUS v3;
UINT64 v5;
INT64 *v6;
INT64 *v7;
UINT64 OldIrql;
v3 = 0;
LOBYTE(OldIrql) = 0;
MmLockLoadedModuleListShared((unsigned __int8 *)&OldIrql);
v6 = (INT64 *)PsLoadedModuleList;
if( PsLoadedModuleList )
{
while( v6 != &PsLoadedModuleList )
{
v7 = v6;
v6 = (INT64 *)*v6;
v5 = v7[6];
if( (unsigned __int64)PcValue >= v5 && (unsigned __int64)PcValue < v5 + *((unsigned int *)v7 + 16) )
{
RtlCopyUnicodeString(FileName, (PCUNICODE_STRING)(v7 + 11));
goto LABEL_6;
}
}
}
v3 = -1073741275;
LABEL_6:
LOBYTE(v5) = OldIrql;
MmUnlockLoadedModuleListShared(v5);
return v3;
}Referenced by:
KitLogFeatureUsage
PoRegisterPowerSettingCallback