PsGetAllocatedFullProcessImageName
NTSTATUS __stdcall PsGetAllocatedFullProcessImageName(_EPROCESS *Process, _UNICODE_STRING **ImageName){
_OBJECT_NAME_INFORMATION *ImageFileName;
VOID **PoolWithTag;
NTSTATUS v5;
_UNICODE_STRING *v6;
ImageFileName = Process->SeAuditProcessCreationInfo.ImageFileName;
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, *((unsigned __int16 *)ImageFileName + 1) + 16i64, 1850307408i64);
v5 = 0;
v6 = (_UNICODE_STRING *)PoolWithTag;
if( !PoolWithTag )
return -1073741801;
*(_OWORD *)PoolWithTag = *(_OWORD *)ImageFileName;
if( PoolWithTag[1] )
{
PoolWithTag[1] = PoolWithTag + 2;
memmove(PoolWithTag + 2, *((const VOID **)ImageFileName + 1), *((unsigned __int16 *)ImageFileName + 1));
}
*ImageName = v6;
return v5;
}Referenced by:
PfCalculateProcessHash
PiUEventHandleVetoEvent
PnpLogVetoInformation
PsGetAllocatedFullProcessImageNameEx
ViCreateProcessCallbackInternal