PsQueryFullProcessImageName
NTSTATUS __stdcall PsQueryFullProcessImageName(
_EPROCESS *Process,
_UNICODE_STRING *ProcessInformation,
WCHAR *ProcessString,
UINT64 *DataLength){
_OBJECT_NAME_INFORMATION *ImageFileName;
unsigned int v7;
__int64 v8;
NTSTATUS v9;
WCHAR *v10;
_UNICODE_STRING v12;
ImageFileName = Process->SeAuditProcessCreationInfo.ImageFileName;
v7 = *(_DWORD *)DataLength;
*(_DWORD *)DataLength = *((unsigned __int16 *)ImageFileName + 1);
if( *((unsigned __int16 *)ImageFileName + 1) > v7 )
return -1073741820;
v12 = *(_UNICODE_STRING *)ImageFileName;
v8 = *(_QWORD *)ImageFileName >> 16;
v9 = 0;
v10 = 0i64;
if( WORD1(*(_OWORD *)ImageFileName) )
v10 = ProcessString;
v12.Buffer = v10;
*ProcessInformation = v12;
if( (_WORD)v8 )
memmove(ProcessString, *((const VOID **)ImageFileName + 1), *((unsigned __int16 *)ImageFileName + 1));
return v9;
}Referenced by:
ExpQuerySystemInformation
NtQueryInformationProcess