| 39 | } |
| 40 | |
| 41 | void BinaryEventDataSerializer::WriteEventData(StructuredDirectory* dir, const EventData* data) { |
| 42 | auto file = dir->CreateStructuredFile(L"Basic"); |
| 43 | CompoundFileReaderWriter writer(*file); |
| 44 | writer.Write(data->GetEventDescriptor()); |
| 45 | writer.Write(data->GetEventName()); |
| 46 | writer.Write(data->GetTimeStamp()); |
| 47 | writer.Write(data->GetIndex()); |
| 48 | writer.Write(data->GetProcessId()); |
| 49 | writer.Write(data->GetThreadId()); |
| 50 | writer.Write(data->GetProviderId()); |
| 51 | |
| 52 | //WriteSimpleData(dir, L"EventDescriptor", &data->GetEventDescriptor(), sizeof(EVENT_DESCRIPTOR)); |
| 53 | //WriteSimpleData(dir, L"EventName", data->GetEventName()); |
| 54 | //WriteSimpleData(dir, L"Index", data->GetIndex()); |
| 55 | //WriteSimpleData(dir, L"ProcessId", data->GetProcessId()); |
| 56 | //WriteSimpleData(dir, L"ThreadId", data->GetThreadId()); |
| 57 | //WriteSimpleData(dir, L"ProcessName", data->GetProcessName()); |
| 58 | //WriteSimpleData(dir, L"ProviderId", data->GetProviderId()); |
| 59 | //WriteSimpleData(dir, L"TimeStamp", data->GetTimeStamp()); |
| 60 | auto props = data->GetProperties(); |
| 61 | if (!props.empty()) { |
| 62 | auto file = dir->CreateStructuredFile(L"Properties"); |
| 63 | CompoundFileReaderWriter writer(*file); |
| 64 | |
| 65 | for (auto& prop : props) { |
| 66 | writer.Write(prop.Name); |
| 67 | writer.Write(prop.GetLength()); |
| 68 | file->Write(prop.GetData(), prop.GetLength()); |
| 69 | |
| 70 | //WriteSimpleData(propDir.get(), prop.Name.c_str(), prop.GetData(), prop.GetLength()); |
| 71 | } |
| 72 | } |
| 73 | auto stackData = data->GetStackEventData(); |
| 74 | if (stackData) { |
| 75 | auto stackDir = dir->CreateStructuredDirectory(L"Stack"); |
| 76 | WriteEventData(stackDir.get(), stackData); |
| 77 | } |
| 78 | } |
| 79 | |
| 80 | void BinaryEventDataSerializer::WriteSimpleData(StructuredDirectory* dir, PCWSTR streamName, const void* data, int size) { |
| 81 | auto file = dir->CreateStructuredFile(streamName); |
nothing calls this directly
no test coverage detected