EtwpQueryTokenPackageInfo
VOID __stdcall EtwpQueryTokenPackageInfo(VOID *Token, _ETW_PACKAGE_IDENTITY *PackageInfo, UINT64 *ProcessInfoFlags){
UINT64 *AppIdSize;
UINT8 v7;
UINT8 v8;
AppIdSize = (UINT64 *)PackageInfo->PackageName;
*(_QWORD *)&PackageInfo->PackageNameSize = 0i64;
v7 = 0;
v8 = 0;
*(_QWORD *)PackageInfo->PackageName = 0i64;
PsQueryProcessAttributesByToken(Token, &v7, &v8);
if( v7 )
{
*(_DWORD *)ProcessInfoFlags |= 1u;
*(_QWORD *)&PackageInfo->PackageNameSize = 256i64;
*AppIdSize = 130i64;
if( RtlQueryPackageIdentity(
Token,
&PackageInfo->PackageName[4],
(UINT64 *)&PackageInfo->PackageNameSize,
&PackageInfo->ApplicationName[4],
AppIdSize,
0i64) < 0 )
{
*(_QWORD *)&PackageInfo->PackageNameSize = 0i64;
*AppIdSize = 0i64;
}
if( v8 )
*(_DWORD *)ProcessInfoFlags |= 8u;
}
if( !*(_QWORD *)&PackageInfo->PackageNameSize )
{
*(_QWORD *)&PackageInfo->PackageNameSize = 2i64;
PackageInfo->PackageName[4] = 0;
}
if( !*AppIdSize )
{
*AppIdSize = 2i64;
PackageInfo->ApplicationName[4] = 0;
}
}Referenced by:
EtwQueryProcessTelemetryInfo
EtwTraceAppStateChange
EtwpBuildProcessEvent
EtwpPsProvProcessEnumCallback