inline result_t register_provider()

in native/include/etw_provider_api.hpp [38:52]


    inline result_t<uint64_t> register_provider(const GUID & provider_guid, void * cb_context = nullptr) noexcept {
        static_assert(sizeof(REGHANDLE) <= sizeof(uint64_t));

        REGHANDLE reg_handle = 0;
        ULONG status = provider_enabled_cb != nullptr
            ? EventRegister(
                &provider_guid,
                &detail::on_provider_enabled<provider_enabled_cb>,
                cb_context, &reg_handle)
            : EventRegister(&provider_guid, nullptr, nullptr, &reg_handle);

        if(status != ERROR_SUCCESS)
            return { static_cast<uint32_t>(status), "Unable to register provider" };
        return static_cast<uint64_t>(reg_handle);
    }