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