MCPcopy Create free account
hub / github.com/BeneficialCode/WinArk / OnConfigureEvents

Method OnConfigureEvents

WinArk/EtwView.cpp:614–648  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

612}
613
614LRESULT CEtwView::OnConfigureEvents(WORD, WORD, HWND, BOOL&) {
615 CEventsDlg dlg(m_EventsConfig);
616 if (dlg.DoModal() == IDOK) {
617 if (m_IsMonitoring) {
618 // update trace manager
619 auto& tm = GetFrame()->GetTraceManager();
620 std::vector<KernelEventTypes> types;
621 std::vector<std::wstring> categories;
622 DWORD flags = 0;
623 for (auto& cat : m_EventsConfig.GetCategories()) {
624 auto c = KernelEventCategory::GetCategory(cat.Name.c_str());
625 ATLASSERT(c);
626 types.push_back(c->EnableFlag);
627 categories.push_back(c->Name);
628 flags |= (DWORD)c->EnableFlag;
629 }
630 std::initializer_list<KernelEventTypes> events(types.data(), types.data() + types.size());
631 tm.SetKernelEventTypes(events);
632 tm.SetKernelEventStacks(std::initializer_list<std::wstring>(categories.data(),categories.data() + categories.size()));
633 bool isWin8Plus = ::IsWindows8OrGreater();
634
635 if (isWin8Plus) {
636 tm.UpdateEventConfig();
637 }
638 else {
639 tm.Stop();
640 tm.Pause(false);
641 tm.Start([&](auto data) {
642 this->AddEvent(data);
643 }, flags);
644 }
645 }
646 }
647 return 0;
648}
649
650LRESULT CEtwView::OnAutoScroll(WORD, WORD, HWND, BOOL&) {
651 m_AutoScroll = !m_AutoScroll;

Callers

nothing calls this directly

Calls 9

AddEventMethod · 0.95
push_backMethod · 0.80
SetKernelEventTypesMethod · 0.80
SetKernelEventStacksMethod · 0.80
UpdateEventConfigMethod · 0.80
sizeMethod · 0.45
StopMethod · 0.45
PauseMethod · 0.45
StartMethod · 0.45

Tested by

no test coverage detected