in native/include/etw_provider_api.hpp [74:89]
inline result_t<> write_event(uint64_t provider_handle, const event_descriptor & descriptor, event_data_field (&data)[data_sz]) noexcept {
EVENT_DATA_DESCRIPTOR descrs[data_sz];
for(uint32_t i = 0; i < data_sz; ++i)
EventDataDescCreate(&descrs[i], data[i].data, static_cast<ULONG>(data[i].size));
EVENT_DESCRIPTOR ed{
descriptor.id,
descriptor.version,
descriptor.channel,
descriptor.level,
descriptor.opcode,
descriptor.task,
descriptor.keyword };
return EventWrite(static_cast<REGHANDLE>(provider_handle), &ed, static_cast<ULONG>(data_sz), descrs);
}