использование утилиты Microsoft Krabsetw для анализа структурированных типов в ETW

Так что я некоторое время изучал Microsoft krabsetw пример того, как обрабатывать и анализировать события ETW. Их пример показал простое использование полей верхнего уровня. Но что происходит, когда задействованы массивы и сложные структуры?

Простое использование: multiple_providers_001.cpp:

 krabs::parser parser(schema);
auto url = parser.parse<std::string>(L"URL");
auto request_headers = parser.parse<std::string>(L"RequestHeaders");
auto response_headers = parser.parse<std::string>(L"ResponseHeaders");
std::cout << "\tURL: " << url << std::endl;
std::cout << "\t\tRequest Headers: " << request_headers << std::endl;
std::cout << "\t\tResponse Headers: " << response_headers << std::endl;

Замедление интерфейса:

template <typename T>
bool try_parse(const std::wstring &name, T &out);

/**
* <summary>
* Attempts to parse the given property by name and type. If the
* property does not exist, an exception is thrown.
* </summary>
*/
template <typename T>
T parse(const std::wstring &name);

template <typename Adapter>
auto view_of(const std::wstring &name, Adapter &adapter) -> collection_view<typename Adapter::const_iterator>;

Итак, подведем итог. В тех случаях, когда меня попросят предоставить следующее значение: A\B\C\Struct\Array-А такая операция даже вероятна с их API? или я должен преобразовать все в JSON и друзей и извлечь его оттуда?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector