CmpTraceHiveRestoreStart
VOID __stdcall CmpTraceHiveRestoreStart(PVOID SourceFile, UINT64 Flags){
unsigned int v3;
__int64 v4;
unsigned int v5;
__int64 v6;
REGHANDLE v7;
__int16 v8;
_UNICODE_STRING UnicodeString;
_EVENT_DESCRIPTOR EventDescriptor;
_EVENT_DATA_DESCRIPTOR UserData[3];
int v12;
v12 = Flags;
EventDescriptor = (_EVENT_DESCRIPTOR)REGISTRY_PERF_EVENT_HIVE_RESTORE_START;
UnicodeString = 0i64;
if( EtwEventEnabled(EtwpRegTraceHandle, &EventDescriptor) )
{
v3 = 0;
if( SourceFile )
{
if( CmpQueryNameString(SourceFile, &UnicodeString) < 0 )
return;
v3 = 1;
UserData[0].Ptr = (unsigned __int64)UnicodeString.Buffer;
UserData[0].Size = UnicodeString.Length;
UserData[0].Reserved = 0;
}
v4 = v3;
v8 = 0;
v5 = v3 + 1;
UserData[v4].Ptr = (unsigned __int64)&v8;
*(_QWORD *)&UserData[v4].Size = 2i64;
v6 = v5;
UserData[v6].Ptr = (unsigned __int64)&v12;
v7 = EtwpRegTraceHandle;
*(_QWORD *)&UserData[v6].Size = 4i64;
EtwWrite(v7, &EventDescriptor, 0, v5 + 1, UserData);
if( SourceFile )
RtlFreeAnsiString(&UnicodeString);
}
}Referenced by:
CmRestoreKey