static NET_LUID getLuid(const char* name, struct Except* eh) { uint16_t ifName[IF_MAX_STRING_SIZE + 1] = {0}; WinFail_check(eh, (!MultiByteToWideChar(CP_UTF8, 0, name, strlen(name), ifName, IF_MAX_STRING_SIZE + 1)) ); NET_LUID out; WinFail_check(eh, ConvertInterfaceAliasToLuid(ifName, &out)); return out; }
NET_LUID c_tun_device_windows::get_luid(const std::wstring &human_name) { NET_LUID ret; NETIO_STATUS status = ConvertInterfaceAliasToLuid(human_name.c_str(), &ret); if (status != ERROR_SUCCESS) throw std::runtime_error("ConvertInterfaceAliasToLuid error, error code " + std::to_string(GetLastError())); return ret; }