EtwpCovSampModuleGetName
INT64 __fastcall EtwpCovSampModuleGetName(INT64 a1, INT64 a2, const UNICODE_STRING *a3){
__int64 v4;
NTSTATUS v6;
__int64 v7;
wchar_t *Buffer;
struct _UNICODE_STRING StringOut;
__int128 v11;
__int64 v12;
v4 = *(_QWORD *)(a2 + 48);
v12 = 0i64;
v11 = 0i64;
StringOut = 0i64;
if( v4
&& FltMgrCallbacks
&& (*(int(__fastcall **)(__int64, __int64, __int128 *, __int64 *))(FltMgrCallbacks + 24))(v4, 512i64, &v11, &v12) >= 0 )
{
v6 = 0;
*(_QWORD *)(a1 + 112) = *((_QWORD *)&v11 + 1);
*(_WORD *)(a1 + 120) = (unsigned __int16)v11 >> 1;
v7 = v12 | 1;
v12 = 0i64;
*(_QWORD *)(a1 + 104) = v7;
}
else
{
if( a3 && a3->Length )
{
v6 = RtlDuplicateUnicodeString(0i64, (UNICODE_STRING *)a3, &StringOut);
if( v6 >= 0 )
{
Buffer = StringOut.Buffer;
v6 = 0;
*(_WORD *)(a1 + 120) = StringOut.Length >> 1;
*(_QWORD *)(a1 + 112) = Buffer;
*(_QWORD *)(a1 + 104) = Buffer;
StringOut = 0i64;
}
}
else
{
v6 = -1073741275;
}
if( v12 )
(*(void(**)(void))(FltMgrCallbacks + 32))();
}
RtlFreeAnsiString(&StringOut);
return(unsigned int)v6;
}Referenced by:
EtwpCovSampContextGetModule