Как извлечь определенные поля из пакета ETW, когда задействованы структура и массивы - PullRequest
0 голосов
/ 04 мая 2018

Я пишу приложение на C ++ для отслеживания определенных полей в определенных пакетах ETW. в частности, Microsoft-Windows-USB-USB3HUB. Из всех примеров, которые мне удалось взять в руки, правильный способ - сначала выполнить поиск recursive-look-like в буфере и напечатать поля одно за другим с уважением к его типу. В * есть более 20 типов 1003 * enum.

Итак, дали следующий пакет: enter image description here

Теоретически, как извлечь и сохранить значения Fid_PortNumber Fid_PortPath[0] & Fid_PortPath[1] без повторной реализации VARIANT подобного члена для хранения типов переменных любого типа?

Кроме того, я хотел бы извлечь другие типы событий, с различными типами полей и структур. Как правильно подходить к этой проблеме? Как сериализовать пакет ETW в работоспособный интерфейс / структуру c ++?

Редактировать: Код взят из здесь

...