Как извлечь определенные поля из пакета ETW, когда задействованы структура и массивы
Я пишу приложение C++ для отслеживания определенных полей в определенных пакетах ETW. В частности, Microsoft-Windows-USB-USB3HUB
, Из всех примеров, которые мне удалось взять в руки, правильный способ - сначала сделать recursive-look-like
искать в буфере и печатать поля одно за другим с уважением к его типу. В пределах более 20 типов _TDH_OUT_TYPE
ENUM.
Теоретически, как извлечь и сохранить Fid_PortNumber
"s Fid_PortPath[0]
и Fid_PortPath[1]
ценности без повторной реализации VARIANT
как член для хранения любых типов переменных?
Кроме того, я хотел бы извлечь другие типы событий, с различными типами полей и структур. Как правильно подходить к этой проблеме? Как сериализовать пакет ETW в работоспособный интерфейс / структуру C++?
Изменить: код взят здесь