PerfDiagpSaveActiveDCLLogFileName
VOID __stdcall PerfDiagpSaveActiveDCLLogFileName(){
_WORD *PoolWithTag;
WCHAR v1;
unsigned __int16 v2;
PVOID ValueData;
UINT64 ValueLength;
UINT64 ReturnLength;
LODWORD(ReturnLength) = 0;
PoolWithTag = ExAllocatePoolWithTag(PagedPool, 0x20Aui64, 0x64465250ui64);
if( PoolWithTag )
{
memset((INT64)&OutBuffer, 0i64);
*(_OWORD *)&LoggerName = *(_OWORD *)L"WdiContextLog";
dword_140C1A09C = 0x20000;
*(_QWORD *)&xmmword_140C1A05C = *(_QWORD *)L"xtLog";
DWORD2(xmmword_140C1A05C) = *(_DWORD *)L"g";
RtlInitUnicodeString(&stru_140C1A100, &LoggerName, v1);
qword_140C1A0F8 = (__int64)PoolWithTag;
word_140C1A0F2 = 520;
LODWORD(OutBuffer) = 176;
LODWORD(ValueData) = 176;
if( (int)NtTraceControl(3ui64, &OutBuffer, 0xB0ui64, &OutBuffer, (UINT64)ValueData, &ReturnLength) < 0
|| (unsigned __int16)word_140C1A0F0 < 2u )
{
RtlDeleteRegistryValue(2ui64, L"Diagnostics\\Performance", L"ActiveShutdownDCL");
}
else
{
v2 = (unsigned __int16)word_140C1A0F0 >> 1;
PoolWithTag[v2] = 0;
LODWORD(ValueLength) = 2 * (unsigned __int16)(v2 + 1);
RtlWriteRegistryValue(2ui64, L"Diagnostics\\Performance", L"ActiveShutdownDCL", 1ui64, PoolWithTag, ValueLength);
}
ExFreePoolWithTag(PoolWithTag, 0);
}
else
{
RtlDeleteRegistryValue(2ui64, L"Diagnostics\\Performance", L"ActiveShutdownDCL");
}
}Referenced by:
PerfDiagpProxyWorker