zigwin32/win32/network_management/ip_helper.zig

4192 lines
134 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (468)
//--------------------------------------------------------------------------------
pub const NET_IF_OPER_STATUS_DOWN_NOT_AUTHENTICATED = @as(u32, 1);
pub const NET_IF_OPER_STATUS_DOWN_NOT_MEDIA_CONNECTED = @as(u32, 2);
pub const NET_IF_OPER_STATUS_DORMANT_PAUSED = @as(u32, 4);
pub const NET_IF_OPER_STATUS_DORMANT_LOW_POWER = @as(u32, 8);
pub const NET_IF_OID_IF_ALIAS = @as(u32, 1);
pub const NET_IF_OID_COMPARTMENT_ID = @as(u32, 2);
pub const NET_IF_OID_NETWORK_GUID = @as(u32, 3);
pub const NET_IF_OID_IF_ENTRY = @as(u32, 4);
pub const NET_SITEID_UNSPECIFIED = @as(u32, 0);
pub const NET_SITEID_MAXUSER = @as(u32, 134217727);
pub const NET_SITEID_MAXSYSTEM = @as(u32, 268435455);
pub const NET_IFLUID_UNSPECIFIED = @as(u32, 0);
pub const NIIF_HARDWARE_INTERFACE = @as(u32, 1);
pub const NIIF_FILTER_INTERFACE = @as(u32, 2);
pub const NIIF_NDIS_RESERVED1 = @as(u32, 4);
pub const NIIF_NDIS_RESERVED2 = @as(u32, 8);
pub const NIIF_NDIS_RESERVED3 = @as(u32, 16);
pub const NIIF_NDIS_WDM_INTERFACE = @as(u32, 32);
pub const NIIF_NDIS_ENDPOINT_INTERFACE = @as(u32, 64);
pub const NIIF_NDIS_ISCSI_INTERFACE = @as(u32, 128);
pub const NIIF_NDIS_RESERVED4 = @as(u32, 256);
pub const IF_MAX_STRING_SIZE = @as(u32, 256);
pub const IF_MAX_PHYS_ADDRESS_LENGTH = @as(u32, 32);
pub const ANY_SIZE = @as(u32, 1);
pub const MAXLEN_PHYSADDR = @as(u32, 8);
pub const MAXLEN_IFDESCR = @as(u32, 256);
pub const MAX_INTERFACE_NAME_LEN = @as(u32, 256);
pub const MIN_IF_TYPE = @as(u32, 1);
pub const IF_TYPE_OTHER = @as(u32, 1);
pub const IF_TYPE_REGULAR_1822 = @as(u32, 2);
pub const IF_TYPE_HDH_1822 = @as(u32, 3);
pub const IF_TYPE_DDN_X25 = @as(u32, 4);
pub const IF_TYPE_RFC877_X25 = @as(u32, 5);
pub const IF_TYPE_ETHERNET_CSMACD = @as(u32, 6);
pub const IF_TYPE_IS088023_CSMACD = @as(u32, 7);
pub const IF_TYPE_ISO88024_TOKENBUS = @as(u32, 8);
pub const IF_TYPE_ISO88025_TOKENRING = @as(u32, 9);
pub const IF_TYPE_ISO88026_MAN = @as(u32, 10);
pub const IF_TYPE_STARLAN = @as(u32, 11);
pub const IF_TYPE_PROTEON_10MBIT = @as(u32, 12);
pub const IF_TYPE_PROTEON_80MBIT = @as(u32, 13);
pub const IF_TYPE_HYPERCHANNEL = @as(u32, 14);
pub const IF_TYPE_FDDI = @as(u32, 15);
pub const IF_TYPE_LAP_B = @as(u32, 16);
pub const IF_TYPE_SDLC = @as(u32, 17);
pub const IF_TYPE_DS1 = @as(u32, 18);
pub const IF_TYPE_E1 = @as(u32, 19);
pub const IF_TYPE_BASIC_ISDN = @as(u32, 20);
pub const IF_TYPE_PRIMARY_ISDN = @as(u32, 21);
pub const IF_TYPE_PROP_POINT2POINT_SERIAL = @as(u32, 22);
pub const IF_TYPE_PPP = @as(u32, 23);
pub const IF_TYPE_SOFTWARE_LOOPBACK = @as(u32, 24);
pub const IF_TYPE_EON = @as(u32, 25);
pub const IF_TYPE_ETHERNET_3MBIT = @as(u32, 26);
pub const IF_TYPE_NSIP = @as(u32, 27);
pub const IF_TYPE_SLIP = @as(u32, 28);
pub const IF_TYPE_ULTRA = @as(u32, 29);
pub const IF_TYPE_DS3 = @as(u32, 30);
pub const IF_TYPE_SIP = @as(u32, 31);
pub const IF_TYPE_FRAMERELAY = @as(u32, 32);
pub const IF_TYPE_RS232 = @as(u32, 33);
pub const IF_TYPE_PARA = @as(u32, 34);
pub const IF_TYPE_ARCNET = @as(u32, 35);
pub const IF_TYPE_ARCNET_PLUS = @as(u32, 36);
pub const IF_TYPE_ATM = @as(u32, 37);
pub const IF_TYPE_MIO_X25 = @as(u32, 38);
pub const IF_TYPE_SONET = @as(u32, 39);
pub const IF_TYPE_X25_PLE = @as(u32, 40);
pub const IF_TYPE_ISO88022_LLC = @as(u32, 41);
pub const IF_TYPE_LOCALTALK = @as(u32, 42);
pub const IF_TYPE_SMDS_DXI = @as(u32, 43);
pub const IF_TYPE_FRAMERELAY_SERVICE = @as(u32, 44);
pub const IF_TYPE_V35 = @as(u32, 45);
pub const IF_TYPE_HSSI = @as(u32, 46);
pub const IF_TYPE_HIPPI = @as(u32, 47);
pub const IF_TYPE_MODEM = @as(u32, 48);
pub const IF_TYPE_AAL5 = @as(u32, 49);
pub const IF_TYPE_SONET_PATH = @as(u32, 50);
pub const IF_TYPE_SONET_VT = @as(u32, 51);
pub const IF_TYPE_SMDS_ICIP = @as(u32, 52);
pub const IF_TYPE_PROP_VIRTUAL = @as(u32, 53);
pub const IF_TYPE_PROP_MULTIPLEXOR = @as(u32, 54);
pub const IF_TYPE_IEEE80212 = @as(u32, 55);
pub const IF_TYPE_FIBRECHANNEL = @as(u32, 56);
pub const IF_TYPE_HIPPIINTERFACE = @as(u32, 57);
pub const IF_TYPE_FRAMERELAY_INTERCONNECT = @as(u32, 58);
pub const IF_TYPE_AFLANE_8023 = @as(u32, 59);
pub const IF_TYPE_AFLANE_8025 = @as(u32, 60);
pub const IF_TYPE_CCTEMUL = @as(u32, 61);
pub const IF_TYPE_FASTETHER = @as(u32, 62);
pub const IF_TYPE_ISDN = @as(u32, 63);
pub const IF_TYPE_V11 = @as(u32, 64);
pub const IF_TYPE_V36 = @as(u32, 65);
pub const IF_TYPE_G703_64K = @as(u32, 66);
pub const IF_TYPE_G703_2MB = @as(u32, 67);
pub const IF_TYPE_QLLC = @as(u32, 68);
pub const IF_TYPE_FASTETHER_FX = @as(u32, 69);
pub const IF_TYPE_CHANNEL = @as(u32, 70);
pub const IF_TYPE_IEEE80211 = @as(u32, 71);
pub const IF_TYPE_IBM370PARCHAN = @as(u32, 72);
pub const IF_TYPE_ESCON = @as(u32, 73);
pub const IF_TYPE_DLSW = @as(u32, 74);
pub const IF_TYPE_ISDN_S = @as(u32, 75);
pub const IF_TYPE_ISDN_U = @as(u32, 76);
pub const IF_TYPE_LAP_D = @as(u32, 77);
pub const IF_TYPE_IPSWITCH = @as(u32, 78);
pub const IF_TYPE_RSRB = @as(u32, 79);
pub const IF_TYPE_ATM_LOGICAL = @as(u32, 80);
pub const IF_TYPE_DS0 = @as(u32, 81);
pub const IF_TYPE_DS0_BUNDLE = @as(u32, 82);
pub const IF_TYPE_BSC = @as(u32, 83);
pub const IF_TYPE_ASYNC = @as(u32, 84);
pub const IF_TYPE_CNR = @as(u32, 85);
pub const IF_TYPE_ISO88025R_DTR = @as(u32, 86);
pub const IF_TYPE_EPLRS = @as(u32, 87);
pub const IF_TYPE_ARAP = @as(u32, 88);
pub const IF_TYPE_PROP_CNLS = @as(u32, 89);
pub const IF_TYPE_HOSTPAD = @as(u32, 90);
pub const IF_TYPE_TERMPAD = @as(u32, 91);
pub const IF_TYPE_FRAMERELAY_MPI = @as(u32, 92);
pub const IF_TYPE_X213 = @as(u32, 93);
pub const IF_TYPE_ADSL = @as(u32, 94);
pub const IF_TYPE_RADSL = @as(u32, 95);
pub const IF_TYPE_SDSL = @as(u32, 96);
pub const IF_TYPE_VDSL = @as(u32, 97);
pub const IF_TYPE_ISO88025_CRFPRINT = @as(u32, 98);
pub const IF_TYPE_MYRINET = @as(u32, 99);
pub const IF_TYPE_VOICE_EM = @as(u32, 100);
pub const IF_TYPE_VOICE_FXO = @as(u32, 101);
pub const IF_TYPE_VOICE_FXS = @as(u32, 102);
pub const IF_TYPE_VOICE_ENCAP = @as(u32, 103);
pub const IF_TYPE_VOICE_OVERIP = @as(u32, 104);
pub const IF_TYPE_ATM_DXI = @as(u32, 105);
pub const IF_TYPE_ATM_FUNI = @as(u32, 106);
pub const IF_TYPE_ATM_IMA = @as(u32, 107);
pub const IF_TYPE_PPPMULTILINKBUNDLE = @as(u32, 108);
pub const IF_TYPE_IPOVER_CDLC = @as(u32, 109);
pub const IF_TYPE_IPOVER_CLAW = @as(u32, 110);
pub const IF_TYPE_STACKTOSTACK = @as(u32, 111);
pub const IF_TYPE_VIRTUALIPADDRESS = @as(u32, 112);
pub const IF_TYPE_MPC = @as(u32, 113);
pub const IF_TYPE_IPOVER_ATM = @as(u32, 114);
pub const IF_TYPE_ISO88025_FIBER = @as(u32, 115);
pub const IF_TYPE_TDLC = @as(u32, 116);
pub const IF_TYPE_GIGABITETHERNET = @as(u32, 117);
pub const IF_TYPE_HDLC = @as(u32, 118);
pub const IF_TYPE_LAP_F = @as(u32, 119);
pub const IF_TYPE_V37 = @as(u32, 120);
pub const IF_TYPE_X25_MLP = @as(u32, 121);
pub const IF_TYPE_X25_HUNTGROUP = @as(u32, 122);
pub const IF_TYPE_TRANSPHDLC = @as(u32, 123);
pub const IF_TYPE_INTERLEAVE = @as(u32, 124);
pub const IF_TYPE_FAST = @as(u32, 125);
pub const IF_TYPE_IP = @as(u32, 126);
pub const IF_TYPE_DOCSCABLE_MACLAYER = @as(u32, 127);
pub const IF_TYPE_DOCSCABLE_DOWNSTREAM = @as(u32, 128);
pub const IF_TYPE_DOCSCABLE_UPSTREAM = @as(u32, 129);
pub const IF_TYPE_A12MPPSWITCH = @as(u32, 130);
pub const IF_TYPE_TUNNEL = @as(u32, 131);
pub const IF_TYPE_COFFEE = @as(u32, 132);
pub const IF_TYPE_CES = @as(u32, 133);
pub const IF_TYPE_ATM_SUBINTERFACE = @as(u32, 134);
pub const IF_TYPE_L2_VLAN = @as(u32, 135);
pub const IF_TYPE_L3_IPVLAN = @as(u32, 136);
pub const IF_TYPE_L3_IPXVLAN = @as(u32, 137);
pub const IF_TYPE_DIGITALPOWERLINE = @as(u32, 138);
pub const IF_TYPE_MEDIAMAILOVERIP = @as(u32, 139);
pub const IF_TYPE_DTM = @as(u32, 140);
pub const IF_TYPE_DCN = @as(u32, 141);
pub const IF_TYPE_IPFORWARD = @as(u32, 142);
pub const IF_TYPE_MSDSL = @as(u32, 143);
pub const IF_TYPE_IEEE1394 = @as(u32, 144);
pub const IF_TYPE_IF_GSN = @as(u32, 145);
pub const IF_TYPE_DVBRCC_MACLAYER = @as(u32, 146);
pub const IF_TYPE_DVBRCC_DOWNSTREAM = @as(u32, 147);
pub const IF_TYPE_DVBRCC_UPSTREAM = @as(u32, 148);
pub const IF_TYPE_ATM_VIRTUAL = @as(u32, 149);
pub const IF_TYPE_MPLS_TUNNEL = @as(u32, 150);
pub const IF_TYPE_SRP = @as(u32, 151);
pub const IF_TYPE_VOICEOVERATM = @as(u32, 152);
pub const IF_TYPE_VOICEOVERFRAMERELAY = @as(u32, 153);
pub const IF_TYPE_IDSL = @as(u32, 154);
pub const IF_TYPE_COMPOSITELINK = @as(u32, 155);
pub const IF_TYPE_SS7_SIGLINK = @as(u32, 156);
pub const IF_TYPE_PROP_WIRELESS_P2P = @as(u32, 157);
pub const IF_TYPE_FR_FORWARD = @as(u32, 158);
pub const IF_TYPE_RFC1483 = @as(u32, 159);
pub const IF_TYPE_USB = @as(u32, 160);
pub const IF_TYPE_IEEE8023AD_LAG = @as(u32, 161);
pub const IF_TYPE_BGP_POLICY_ACCOUNTING = @as(u32, 162);
pub const IF_TYPE_FRF16_MFR_BUNDLE = @as(u32, 163);
pub const IF_TYPE_H323_GATEKEEPER = @as(u32, 164);
pub const IF_TYPE_H323_PROXY = @as(u32, 165);
pub const IF_TYPE_MPLS = @as(u32, 166);
pub const IF_TYPE_MF_SIGLINK = @as(u32, 167);
pub const IF_TYPE_HDSL2 = @as(u32, 168);
pub const IF_TYPE_SHDSL = @as(u32, 169);
pub const IF_TYPE_DS1_FDL = @as(u32, 170);
pub const IF_TYPE_POS = @as(u32, 171);
pub const IF_TYPE_DVB_ASI_IN = @as(u32, 172);
pub const IF_TYPE_DVB_ASI_OUT = @as(u32, 173);
pub const IF_TYPE_PLC = @as(u32, 174);
pub const IF_TYPE_NFAS = @as(u32, 175);
pub const IF_TYPE_TR008 = @as(u32, 176);
pub const IF_TYPE_GR303_RDT = @as(u32, 177);
pub const IF_TYPE_GR303_IDT = @as(u32, 178);
pub const IF_TYPE_ISUP = @as(u32, 179);
pub const IF_TYPE_PROP_DOCS_WIRELESS_MACLAYER = @as(u32, 180);
pub const IF_TYPE_PROP_DOCS_WIRELESS_DOWNSTREAM = @as(u32, 181);
pub const IF_TYPE_PROP_DOCS_WIRELESS_UPSTREAM = @as(u32, 182);
pub const IF_TYPE_HIPERLAN2 = @as(u32, 183);
pub const IF_TYPE_PROP_BWA_P2MP = @as(u32, 184);
pub const IF_TYPE_SONET_OVERHEAD_CHANNEL = @as(u32, 185);
pub const IF_TYPE_DIGITAL_WRAPPER_OVERHEAD_CHANNEL = @as(u32, 186);
pub const IF_TYPE_AAL2 = @as(u32, 187);
pub const IF_TYPE_RADIO_MAC = @as(u32, 188);
pub const IF_TYPE_ATM_RADIO = @as(u32, 189);
pub const IF_TYPE_IMT = @as(u32, 190);
pub const IF_TYPE_MVL = @as(u32, 191);
pub const IF_TYPE_REACH_DSL = @as(u32, 192);
pub const IF_TYPE_FR_DLCI_ENDPT = @as(u32, 193);
pub const IF_TYPE_ATM_VCI_ENDPT = @as(u32, 194);
pub const IF_TYPE_OPTICAL_CHANNEL = @as(u32, 195);
pub const IF_TYPE_OPTICAL_TRANSPORT = @as(u32, 196);
pub const IF_TYPE_IEEE80216_WMAN = @as(u32, 237);
pub const IF_TYPE_WWANPP = @as(u32, 243);
pub const IF_TYPE_WWANPP2 = @as(u32, 244);
pub const IF_TYPE_IEEE802154 = @as(u32, 259);
pub const IF_TYPE_XBOX_WIRELESS = @as(u32, 281);
pub const MAX_IF_TYPE = @as(u32, 281);
pub const IF_CHECK_NONE = @as(u32, 0);
pub const IF_CHECK_MCAST = @as(u32, 1);
pub const IF_CHECK_SEND = @as(u32, 2);
pub const IF_CONNECTION_DEDICATED = @as(u32, 1);
pub const IF_CONNECTION_PASSIVE = @as(u32, 2);
pub const IF_CONNECTION_DEMAND = @as(u32, 3);
pub const IF_ADMIN_STATUS_UP = @as(u32, 1);
pub const IF_ADMIN_STATUS_DOWN = @as(u32, 2);
pub const IF_ADMIN_STATUS_TESTING = @as(u32, 3);
pub const MIB_IF_TYPE_OTHER = @as(u32, 1);
pub const MIB_IF_TYPE_ETHERNET = @as(u32, 6);
pub const MIB_IF_TYPE_TOKENRING = @as(u32, 9);
pub const MIB_IF_TYPE_FDDI = @as(u32, 15);
pub const MIB_IF_TYPE_PPP = @as(u32, 23);
pub const MIB_IF_TYPE_LOOPBACK = @as(u32, 24);
pub const MIB_IF_TYPE_SLIP = @as(u32, 28);
pub const MIB_IF_ADMIN_STATUS_UP = @as(u32, 1);
pub const MIB_IF_ADMIN_STATUS_DOWN = @as(u32, 2);
pub const MIB_IF_ADMIN_STATUS_TESTING = @as(u32, 3);
pub const MIB_IPADDR_PRIMARY = @as(u32, 1);
pub const MIB_IPADDR_DYNAMIC = @as(u32, 4);
pub const MIB_IPADDR_DISCONNECTED = @as(u32, 8);
pub const MIB_IPADDR_DELETED = @as(u32, 64);
pub const MIB_IPADDR_TRANSIENT = @as(u32, 128);
pub const MIB_IPADDR_DNS_ELIGIBLE = @as(u32, 256);
pub const MIB_IPROUTE_METRIC_UNUSED = @as(u32, 4294967295);
pub const MIB_USE_CURRENT_TTL = @as(u32, 4294967295);
pub const MIB_USE_CURRENT_FORWARDING = @as(u32, 4294967295);
pub const ICMP6_INFOMSG_MASK = @as(u32, 128);
pub const IPRTRMGR_PID = @as(u32, 10000);
pub const IF_NUMBER = @as(u32, 0);
pub const IF_TABLE = @as(u32, 1);
pub const IF_ROW = @as(u32, 2);
pub const IP_STATS = @as(u32, 3);
pub const IP_ADDRTABLE = @as(u32, 4);
pub const IP_ADDRROW = @as(u32, 5);
pub const IP_FORWARDNUMBER = @as(u32, 6);
pub const IP_FORWARDTABLE = @as(u32, 7);
pub const IP_FORWARDROW = @as(u32, 8);
pub const IP_NETTABLE = @as(u32, 9);
pub const IP_NETROW = @as(u32, 10);
pub const ICMP_STATS = @as(u32, 11);
pub const TCP_STATS = @as(u32, 12);
pub const TCP_TABLE = @as(u32, 13);
pub const TCP_ROW = @as(u32, 14);
pub const UDP_STATS = @as(u32, 15);
pub const UDP_TABLE = @as(u32, 16);
pub const UDP_ROW = @as(u32, 17);
pub const MCAST_MFE = @as(u32, 18);
pub const MCAST_MFE_STATS = @as(u32, 19);
pub const BEST_IF = @as(u32, 20);
pub const BEST_ROUTE = @as(u32, 21);
pub const PROXY_ARP = @as(u32, 22);
pub const MCAST_IF_ENTRY = @as(u32, 23);
pub const MCAST_GLOBAL = @as(u32, 24);
pub const IF_STATUS = @as(u32, 25);
pub const MCAST_BOUNDARY = @as(u32, 26);
pub const MCAST_SCOPE = @as(u32, 27);
pub const DEST_MATCHING = @as(u32, 28);
pub const DEST_LONGER = @as(u32, 29);
pub const DEST_SHORTER = @as(u32, 30);
pub const ROUTE_MATCHING = @as(u32, 31);
pub const ROUTE_LONGER = @as(u32, 32);
pub const ROUTE_SHORTER = @as(u32, 33);
pub const ROUTE_STATE = @as(u32, 34);
pub const MCAST_MFE_STATS_EX = @as(u32, 35);
pub const IP6_STATS = @as(u32, 36);
pub const UDP6_STATS = @as(u32, 37);
pub const TCP6_STATS = @as(u32, 38);
pub const NUMBER_OF_EXPORTED_VARIABLES = @as(u32, 39);
pub const MAX_SCOPE_NAME_LEN = @as(u32, 255);
pub const MAX_MIB_OFFSET = @as(u32, 8);
pub const MIB_INVALID_TEREDO_PORT_NUMBER = @as(u32, 0);
pub const DNS_SETTINGS_VERSION1 = @as(u32, 1);
pub const DNS_SETTINGS_VERSION2 = @as(u32, 2);
pub const DNS_INTERFACE_SETTINGS_VERSION1 = @as(u32, 1);
pub const DNS_INTERFACE_SETTINGS_VERSION2 = @as(u32, 2);
pub const DNS_INTERFACE_SETTINGS_VERSION3 = @as(u32, 3);
pub const DNS_SETTING_IPV6 = @as(u32, 1);
pub const DNS_SETTING_NAMESERVER = @as(u32, 2);
pub const DNS_SETTING_SEARCHLIST = @as(u32, 4);
pub const DNS_SETTING_REGISTRATION_ENABLED = @as(u32, 8);
pub const DNS_SETTING_REGISTER_ADAPTER_NAME = @as(u32, 16);
pub const DNS_SETTING_DOMAIN = @as(u32, 32);
pub const DNS_SETTING_HOSTNAME = @as(u32, 64);
pub const DNS_SETTINGS_ENABLE_LLMNR = @as(u32, 128);
pub const DNS_SETTINGS_QUERY_ADAPTER_NAME = @as(u32, 256);
pub const DNS_SETTING_PROFILE_NAMESERVER = @as(u32, 512);
pub const DNS_SETTING_DISABLE_UNCONSTRAINED_QUERIES = @as(u32, 1024);
pub const DNS_SETTING_SUPPLEMENTAL_SEARCH_LIST = @as(u32, 2048);
pub const DNS_SETTING_DOH = @as(u32, 4096);
pub const DNS_SETTING_DOH_PROFILE = @as(u32, 8192);
pub const DNS_ENABLE_DOH = @as(u32, 1);
pub const DNS_DOH_POLICY_NOT_CONFIGURED = @as(u32, 4);
pub const DNS_DOH_POLICY_DISABLE = @as(u32, 8);
pub const DNS_DOH_POLICY_AUTO = @as(u32, 16);
pub const DNS_DOH_POLICY_REQUIRED = @as(u32, 32);
pub const DNS_SERVER_PROPERTY_VERSION1 = @as(u32, 1);
pub const DNS_DOH_SERVER_SETTINGS_ENABLE_AUTO = @as(u32, 1);
pub const DNS_DOH_SERVER_SETTINGS_ENABLE = @as(u32, 2);
pub const DNS_DOH_SERVER_SETTINGS_FALLBACK_TO_UDP = @as(u32, 4);
pub const DNS_DOH_AUTO_UPGRADE_SERVER = @as(u32, 8);
pub const TCPIP_OWNING_MODULE_SIZE = @as(u32, 16);
pub const FD_FLAGS_NOSYN = @as(u32, 1);
pub const FD_FLAGS_ALLFLAGS = @as(u32, 1);
pub const LB_SRC_ADDR_USE_SRCADDR_FLAG = @as(u32, 1);
pub const LB_SRC_ADDR_USE_DSTADDR_FLAG = @as(u32, 2);
pub const LB_DST_ADDR_USE_SRCADDR_FLAG = @as(u32, 4);
pub const LB_DST_ADDR_USE_DSTADDR_FLAG = @as(u32, 8);
pub const LB_SRC_MASK_LATE_FLAG = @as(u32, 16);
pub const LB_DST_MASK_LATE_FLAG = @as(u32, 32);
pub const ERROR_BASE = @as(u32, 23000);
pub const PFERROR_NO_PF_INTERFACE = @as(u32, 23000);
pub const PFERROR_NO_FILTERS_GIVEN = @as(u32, 23001);
pub const PFERROR_BUFFER_TOO_SMALL = @as(u32, 23002);
pub const ERROR_IPV6_NOT_IMPLEMENTED = @as(u32, 23003);
pub const IP_EXPORT_INCLUDED = @as(u32, 1);
pub const MAX_ADAPTER_NAME = @as(u32, 128);
pub const IP_STATUS_BASE = @as(u32, 11000);
pub const IP_SUCCESS = @as(u32, 0);
pub const IP_BUF_TOO_SMALL = @as(u32, 11001);
pub const IP_DEST_NET_UNREACHABLE = @as(u32, 11002);
pub const IP_DEST_HOST_UNREACHABLE = @as(u32, 11003);
pub const IP_DEST_PROT_UNREACHABLE = @as(u32, 11004);
pub const IP_DEST_PORT_UNREACHABLE = @as(u32, 11005);
pub const IP_NO_RESOURCES = @as(u32, 11006);
pub const IP_BAD_OPTION = @as(u32, 11007);
pub const IP_HW_ERROR = @as(u32, 11008);
pub const IP_PACKET_TOO_BIG = @as(u32, 11009);
pub const IP_REQ_TIMED_OUT = @as(u32, 11010);
pub const IP_BAD_REQ = @as(u32, 11011);
pub const IP_BAD_ROUTE = @as(u32, 11012);
pub const IP_TTL_EXPIRED_TRANSIT = @as(u32, 11013);
pub const IP_TTL_EXPIRED_REASSEM = @as(u32, 11014);
pub const IP_PARAM_PROBLEM = @as(u32, 11015);
pub const IP_SOURCE_QUENCH = @as(u32, 11016);
pub const IP_OPTION_TOO_BIG = @as(u32, 11017);
pub const IP_BAD_DESTINATION = @as(u32, 11018);
pub const IP_DEST_NO_ROUTE = @as(u32, 11002);
pub const IP_DEST_ADDR_UNREACHABLE = @as(u32, 11003);
pub const IP_DEST_PROHIBITED = @as(u32, 11004);
pub const IP_HOP_LIMIT_EXCEEDED = @as(u32, 11013);
pub const IP_REASSEMBLY_TIME_EXCEEDED = @as(u32, 11014);
pub const IP_PARAMETER_PROBLEM = @as(u32, 11015);
pub const IP_DEST_UNREACHABLE = @as(u32, 11040);
pub const IP_TIME_EXCEEDED = @as(u32, 11041);
pub const IP_BAD_HEADER = @as(u32, 11042);
pub const IP_UNRECOGNIZED_NEXT_HEADER = @as(u32, 11043);
pub const IP_ICMP_ERROR = @as(u32, 11044);
pub const IP_DEST_SCOPE_MISMATCH = @as(u32, 11045);
pub const IP_ADDR_DELETED = @as(u32, 11019);
pub const IP_SPEC_MTU_CHANGE = @as(u32, 11020);
pub const IP_MTU_CHANGE = @as(u32, 11021);
pub const IP_UNLOAD = @as(u32, 11022);
pub const IP_ADDR_ADDED = @as(u32, 11023);
pub const IP_MEDIA_CONNECT = @as(u32, 11024);
pub const IP_MEDIA_DISCONNECT = @as(u32, 11025);
pub const IP_BIND_ADAPTER = @as(u32, 11026);
pub const IP_UNBIND_ADAPTER = @as(u32, 11027);
pub const IP_DEVICE_DOES_NOT_EXIST = @as(u32, 11028);
pub const IP_DUPLICATE_ADDRESS = @as(u32, 11029);
pub const IP_INTERFACE_METRIC_CHANGE = @as(u32, 11030);
pub const IP_RECONFIG_SECFLTR = @as(u32, 11031);
pub const IP_NEGOTIATING_IPSEC = @as(u32, 11032);
pub const IP_INTERFACE_WOL_CAPABILITY_CHANGE = @as(u32, 11033);
pub const IP_DUPLICATE_IPADD = @as(u32, 11034);
pub const IP_GENERAL_FAILURE = @as(u32, 11050);
pub const MAX_IP_STATUS = @as(u32, 11050);
pub const IP_PENDING = @as(u32, 11255);
pub const IP_FLAG_REVERSE = @as(u32, 1);
pub const IP_FLAG_DF = @as(u32, 2);
pub const MAX_OPT_SIZE = @as(u32, 40);
pub const IOCTL_IP_RTCHANGE_NOTIFY_REQUEST = @as(u32, 101);
pub const IOCTL_IP_ADDCHANGE_NOTIFY_REQUEST = @as(u32, 102);
pub const IOCTL_ARP_SEND_REQUEST = @as(u32, 103);
pub const IOCTL_IP_INTERFACE_INFO = @as(u32, 104);
pub const IOCTL_IP_GET_BEST_INTERFACE = @as(u32, 105);
pub const IOCTL_IP_UNIDIRECTIONAL_ADAPTER_ADDRESS = @as(u32, 106);
pub const NET_STRING_IPV4_ADDRESS = @as(u32, 1);
pub const NET_STRING_IPV4_SERVICE = @as(u32, 2);
pub const NET_STRING_IPV4_NETWORK = @as(u32, 4);
pub const NET_STRING_IPV6_ADDRESS = @as(u32, 8);
pub const NET_STRING_IPV6_ADDRESS_NO_SCOPE = @as(u32, 16);
pub const NET_STRING_IPV6_SERVICE = @as(u32, 32);
pub const NET_STRING_IPV6_SERVICE_NO_SCOPE = @as(u32, 64);
pub const NET_STRING_IPV6_NETWORK = @as(u32, 128);
pub const NET_STRING_NAMED_ADDRESS = @as(u32, 256);
pub const NET_STRING_NAMED_SERVICE = @as(u32, 512);
pub const MAX_ADAPTER_DESCRIPTION_LENGTH = @as(u32, 128);
pub const MAX_ADAPTER_NAME_LENGTH = @as(u32, 256);
pub const MAX_ADAPTER_ADDRESS_LENGTH = @as(u32, 8);
pub const DEFAULT_MINIMUM_ENTITIES = @as(u32, 32);
pub const MAX_HOSTNAME_LEN = @as(u32, 128);
pub const MAX_DOMAIN_NAME_LEN = @as(u32, 128);
pub const MAX_SCOPE_ID_LEN = @as(u32, 256);
pub const MAX_DHCPV6_DUID_LENGTH = @as(u32, 130);
pub const MAX_DNS_SUFFIX_STRING_LENGTH = @as(u32, 256);
pub const BROADCAST_NODETYPE = @as(u32, 1);
pub const PEER_TO_PEER_NODETYPE = @as(u32, 2);
pub const MIXED_NODETYPE = @as(u32, 4);
pub const HYBRID_NODETYPE = @as(u32, 8);
pub const IP_ADAPTER_ADDRESS_DNS_ELIGIBLE = @as(u32, 1);
pub const IP_ADAPTER_ADDRESS_TRANSIENT = @as(u32, 2);
pub const IP_ADAPTER_DDNS_ENABLED = @as(u32, 1);
pub const IP_ADAPTER_REGISTER_ADAPTER_SUFFIX = @as(u32, 2);
pub const IP_ADAPTER_DHCP_ENABLED = @as(u32, 4);
pub const IP_ADAPTER_RECEIVE_ONLY = @as(u32, 8);
pub const IP_ADAPTER_NO_MULTICAST = @as(u32, 16);
pub const IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG = @as(u32, 32);
pub const IP_ADAPTER_NETBIOS_OVER_TCPIP_ENABLED = @as(u32, 64);
pub const IP_ADAPTER_IPV4_ENABLED = @as(u32, 128);
pub const IP_ADAPTER_IPV6_ENABLED = @as(u32, 256);
pub const IP_ADAPTER_IPV6_MANAGE_ADDRESS_CONFIG = @as(u32, 512);
pub const GAA_FLAG_SKIP_DNS_INFO = @as(u32, 2048);
pub const IP_ROUTER_MANAGER_VERSION = @as(u32, 1);
pub const IP_GENERAL_INFO_BASE = @as(u32, 4294901760);
pub const IP_IN_FILTER_INFO = @as(u32, 4294901761);
pub const IP_OUT_FILTER_INFO = @as(u32, 4294901762);
pub const IP_GLOBAL_INFO = @as(u32, 4294901763);
pub const IP_INTERFACE_STATUS_INFO = @as(u32, 4294901764);
pub const IP_ROUTE_INFO = @as(u32, 4294901765);
pub const IP_PROT_PRIORITY_INFO = @as(u32, 4294901766);
pub const IP_ROUTER_DISC_INFO = @as(u32, 4294901767);
pub const IP_DEMAND_DIAL_FILTER_INFO = @as(u32, 4294901769);
pub const IP_MCAST_HEARBEAT_INFO = @as(u32, 4294901770);
pub const IP_MCAST_BOUNDARY_INFO = @as(u32, 4294901771);
pub const IP_IPINIP_CFG_INFO = @as(u32, 4294901772);
pub const IP_IFFILTER_INFO = @as(u32, 4294901773);
pub const IP_MCAST_LIMIT_INFO = @as(u32, 4294901774);
pub const IPV6_GLOBAL_INFO = @as(u32, 4294901775);
pub const IPV6_ROUTE_INFO = @as(u32, 4294901776);
pub const IP_IN_FILTER_INFO_V6 = @as(u32, 4294901777);
pub const IP_OUT_FILTER_INFO_V6 = @as(u32, 4294901778);
pub const IP_DEMAND_DIAL_FILTER_INFO_V6 = @as(u32, 4294901779);
pub const IP_IFFILTER_INFO_V6 = @as(u32, 4294901780);
pub const IP_FILTER_ENABLE_INFO = @as(u32, 4294901781);
pub const IP_FILTER_ENABLE_INFO_V6 = @as(u32, 4294901782);
pub const IP_PROT_PRIORITY_INFO_EX = @as(u32, 4294901783);
//--------------------------------------------------------------------------------
// Section: Types (224)
//--------------------------------------------------------------------------------
pub const GET_ADAPTERS_ADDRESSES_FLAGS = enum(u32) {
SKIP_UNICAST = 1,
SKIP_ANYCAST = 2,
SKIP_MULTICAST = 4,
SKIP_DNS_SERVER = 8,
INCLUDE_PREFIX = 16,
SKIP_FRIENDLY_NAME = 32,
INCLUDE_WINS_INFO = 64,
INCLUDE_GATEWAYS = 128,
INCLUDE_ALL_INTERFACES = 256,
INCLUDE_ALL_COMPARTMENTS = 512,
INCLUDE_TUNNEL_BINDINGORDER = 1024,
_,
pub fn initFlags(o: struct {
SKIP_UNICAST: u1 = 0,
SKIP_ANYCAST: u1 = 0,
SKIP_MULTICAST: u1 = 0,
SKIP_DNS_SERVER: u1 = 0,
INCLUDE_PREFIX: u1 = 0,
SKIP_FRIENDLY_NAME: u1 = 0,
INCLUDE_WINS_INFO: u1 = 0,
INCLUDE_GATEWAYS: u1 = 0,
INCLUDE_ALL_INTERFACES: u1 = 0,
INCLUDE_ALL_COMPARTMENTS: u1 = 0,
INCLUDE_TUNNEL_BINDINGORDER: u1 = 0,
}) GET_ADAPTERS_ADDRESSES_FLAGS {
return @as(GET_ADAPTERS_ADDRESSES_FLAGS, @enumFromInt(
(if (o.SKIP_UNICAST == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_UNICAST) else 0)
| (if (o.SKIP_ANYCAST == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_ANYCAST) else 0)
| (if (o.SKIP_MULTICAST == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_MULTICAST) else 0)
| (if (o.SKIP_DNS_SERVER == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_DNS_SERVER) else 0)
| (if (o.INCLUDE_PREFIX == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_PREFIX) else 0)
| (if (o.SKIP_FRIENDLY_NAME == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_FRIENDLY_NAME) else 0)
| (if (o.INCLUDE_WINS_INFO == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_WINS_INFO) else 0)
| (if (o.INCLUDE_GATEWAYS == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_GATEWAYS) else 0)
| (if (o.INCLUDE_ALL_INTERFACES == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_ALL_INTERFACES) else 0)
| (if (o.INCLUDE_ALL_COMPARTMENTS == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_ALL_COMPARTMENTS) else 0)
| (if (o.INCLUDE_TUNNEL_BINDINGORDER == 1) @intFromEnum(GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_TUNNEL_BINDINGORDER) else 0)
));
}
};
pub const GAA_FLAG_SKIP_UNICAST = GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_UNICAST;
pub const GAA_FLAG_SKIP_ANYCAST = GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_ANYCAST;
pub const GAA_FLAG_SKIP_MULTICAST = GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_MULTICAST;
pub const GAA_FLAG_SKIP_DNS_SERVER = GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_DNS_SERVER;
pub const GAA_FLAG_INCLUDE_PREFIX = GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_PREFIX;
pub const GAA_FLAG_SKIP_FRIENDLY_NAME = GET_ADAPTERS_ADDRESSES_FLAGS.SKIP_FRIENDLY_NAME;
pub const GAA_FLAG_INCLUDE_WINS_INFO = GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_WINS_INFO;
pub const GAA_FLAG_INCLUDE_GATEWAYS = GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_GATEWAYS;
pub const GAA_FLAG_INCLUDE_ALL_INTERFACES = GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_ALL_INTERFACES;
pub const GAA_FLAG_INCLUDE_ALL_COMPARTMENTS = GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_ALL_COMPARTMENTS;
pub const GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER = GET_ADAPTERS_ADDRESSES_FLAGS.INCLUDE_TUNNEL_BINDINGORDER;
// TODO: this type has a FreeFunc 'IcmpCloseHandle', what can Zig do with this information?
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const IcmpHandle = isize;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HIFTIMESTAMPCHANGE = *opaque{};
pub const ip_option_information = extern struct {
Ttl: u8,
Tos: u8,
Flags: u8,
OptionsSize: u8,
OptionsData: ?*u8,
};
pub const icmp_echo_reply = extern struct {
Address: u32,
Status: u32,
RoundTripTime: u32,
DataSize: u16,
Reserved: u16,
Data: ?*anyopaque,
Options: ip_option_information,
};
pub const IPV6_ADDRESS_EX = extern struct {
sin6_port: u16 align(1),
sin6_flowinfo: u32 align(1),
sin6_addr: [8]u16 align(1),
sin6_scope_id: u32 align(1),
};
pub const icmpv6_echo_reply_lh = extern struct {
Address: IPV6_ADDRESS_EX,
Status: u32,
RoundTripTime: u32,
};
pub const arp_send_reply = extern struct {
DestAddress: u32,
SrcAddress: u32,
};
pub const tcp_reserve_port_range = extern struct {
UpperRange: u16,
LowerRange: u16,
};
pub const IP_ADAPTER_INDEX_MAP = extern struct {
Index: u32,
Name: [128]u16,
};
pub const IP_INTERFACE_INFO = extern struct {
NumAdapters: i32,
Adapter: [1]IP_ADAPTER_INDEX_MAP,
};
pub const IP_UNIDIRECTIONAL_ADAPTER_ADDRESS = extern struct {
NumAdapters: u32,
Address: [1]u32,
};
pub const IP_ADAPTER_ORDER_MAP = extern struct {
NumAdapters: u32,
AdapterOrder: [1]u32,
};
pub const IP_MCAST_COUNTER_INFO = extern struct {
InMcastOctets: u64,
OutMcastOctets: u64,
InMcastPkts: u64,
OutMcastPkts: u64,
};
pub const IF_ACCESS_TYPE = enum(i32) {
LOOPBACK = 1,
BROADCAST = 2,
POINT_TO_POINT = 3,
// POINTTOPOINT = 3, this enum value conflicts with POINT_TO_POINT
POINT_TO_MULTI_POINT = 4,
// POINTTOMULTIPOINT = 4, this enum value conflicts with POINT_TO_MULTI_POINT
};
pub const IF_ACCESS_LOOPBACK = IF_ACCESS_TYPE.LOOPBACK;
pub const IF_ACCESS_BROADCAST = IF_ACCESS_TYPE.BROADCAST;
pub const IF_ACCESS_POINT_TO_POINT = IF_ACCESS_TYPE.POINT_TO_POINT;
pub const IF_ACCESS_POINTTOPOINT = IF_ACCESS_TYPE.POINT_TO_POINT;
pub const IF_ACCESS_POINT_TO_MULTI_POINT = IF_ACCESS_TYPE.POINT_TO_MULTI_POINT;
pub const IF_ACCESS_POINTTOMULTIPOINT = IF_ACCESS_TYPE.POINT_TO_MULTI_POINT;
pub const INTERNAL_IF_OPER_STATUS = enum(i32) {
NON_OPERATIONAL = 0,
UNREACHABLE = 1,
DISCONNECTED = 2,
CONNECTING = 3,
CONNECTED = 4,
OPERATIONAL = 5,
};
pub const IF_OPER_STATUS_NON_OPERATIONAL = INTERNAL_IF_OPER_STATUS.NON_OPERATIONAL;
pub const IF_OPER_STATUS_UNREACHABLE = INTERNAL_IF_OPER_STATUS.UNREACHABLE;
pub const IF_OPER_STATUS_DISCONNECTED = INTERNAL_IF_OPER_STATUS.DISCONNECTED;
pub const IF_OPER_STATUS_CONNECTING = INTERNAL_IF_OPER_STATUS.CONNECTING;
pub const IF_OPER_STATUS_CONNECTED = INTERNAL_IF_OPER_STATUS.CONNECTED;
pub const IF_OPER_STATUS_OPERATIONAL = INTERNAL_IF_OPER_STATUS.OPERATIONAL;
pub const NET_IF_OPER_STATUS = enum(i32) {
UP = 1,
DOWN = 2,
TESTING = 3,
UNKNOWN = 4,
DORMANT = 5,
NOT_PRESENT = 6,
LOWER_LAYER_DOWN = 7,
};
pub const NET_IF_OPER_STATUS_UP = NET_IF_OPER_STATUS.UP;
pub const NET_IF_OPER_STATUS_DOWN = NET_IF_OPER_STATUS.DOWN;
pub const NET_IF_OPER_STATUS_TESTING = NET_IF_OPER_STATUS.TESTING;
pub const NET_IF_OPER_STATUS_UNKNOWN = NET_IF_OPER_STATUS.UNKNOWN;
pub const NET_IF_OPER_STATUS_DORMANT = NET_IF_OPER_STATUS.DORMANT;
pub const NET_IF_OPER_STATUS_NOT_PRESENT = NET_IF_OPER_STATUS.NOT_PRESENT;
pub const NET_IF_OPER_STATUS_LOWER_LAYER_DOWN = NET_IF_OPER_STATUS.LOWER_LAYER_DOWN;
pub const NET_IF_ADMIN_STATUS = enum(i32) {
UP = 1,
DOWN = 2,
TESTING = 3,
};
pub const NET_IF_ADMIN_STATUS_UP = NET_IF_ADMIN_STATUS.UP;
pub const NET_IF_ADMIN_STATUS_DOWN = NET_IF_ADMIN_STATUS.DOWN;
pub const NET_IF_ADMIN_STATUS_TESTING = NET_IF_ADMIN_STATUS.TESTING;
pub const NET_IF_RCV_ADDRESS_TYPE = enum(i32) {
OTHER = 1,
VOLATILE = 2,
NON_VOLATILE = 3,
};
pub const NET_IF_RCV_ADDRESS_TYPE_OTHER = NET_IF_RCV_ADDRESS_TYPE.OTHER;
pub const NET_IF_RCV_ADDRESS_TYPE_VOLATILE = NET_IF_RCV_ADDRESS_TYPE.VOLATILE;
pub const NET_IF_RCV_ADDRESS_TYPE_NON_VOLATILE = NET_IF_RCV_ADDRESS_TYPE.NON_VOLATILE;
pub const NET_IF_RCV_ADDRESS_LH = extern struct {
ifRcvAddressType: NET_IF_RCV_ADDRESS_TYPE,
ifRcvAddressLength: u16,
ifRcvAddressOffset: u16,
};
pub const NET_IF_ALIAS_LH = extern struct {
ifAliasLength: u16,
ifAliasOffset: u16,
};
pub const NET_LUID_LH = extern union {
Value: u64,
Info: extern struct {
_bitfield: u64,
},
};
pub const NET_IF_CONNECTION_TYPE = enum(i32) {
DEDICATED = 1,
PASSIVE = 2,
DEMAND = 3,
MAXIMUM = 4,
};
pub const NET_IF_CONNECTION_DEDICATED = NET_IF_CONNECTION_TYPE.DEDICATED;
pub const NET_IF_CONNECTION_PASSIVE = NET_IF_CONNECTION_TYPE.PASSIVE;
pub const NET_IF_CONNECTION_DEMAND = NET_IF_CONNECTION_TYPE.DEMAND;
pub const NET_IF_CONNECTION_MAXIMUM = NET_IF_CONNECTION_TYPE.MAXIMUM;
pub const TUNNEL_TYPE = enum(i32) {
NONE = 0,
OTHER = 1,
DIRECT = 2,
@"6TO4" = 11,
ISATAP = 13,
TEREDO = 14,
IPHTTPS = 15,
};
pub const TUNNEL_TYPE_NONE = TUNNEL_TYPE.NONE;
pub const TUNNEL_TYPE_OTHER = TUNNEL_TYPE.OTHER;
pub const TUNNEL_TYPE_DIRECT = TUNNEL_TYPE.DIRECT;
pub const TUNNEL_TYPE_6TO4 = TUNNEL_TYPE.@"6TO4";
pub const TUNNEL_TYPE_ISATAP = TUNNEL_TYPE.ISATAP;
pub const TUNNEL_TYPE_TEREDO = TUNNEL_TYPE.TEREDO;
pub const TUNNEL_TYPE_IPHTTPS = TUNNEL_TYPE.IPHTTPS;
pub const NET_IF_ACCESS_TYPE = enum(i32) {
LOOPBACK = 1,
BROADCAST = 2,
POINT_TO_POINT = 3,
POINT_TO_MULTI_POINT = 4,
MAXIMUM = 5,
};
pub const NET_IF_ACCESS_LOOPBACK = NET_IF_ACCESS_TYPE.LOOPBACK;
pub const NET_IF_ACCESS_BROADCAST = NET_IF_ACCESS_TYPE.BROADCAST;
pub const NET_IF_ACCESS_POINT_TO_POINT = NET_IF_ACCESS_TYPE.POINT_TO_POINT;
pub const NET_IF_ACCESS_POINT_TO_MULTI_POINT = NET_IF_ACCESS_TYPE.POINT_TO_MULTI_POINT;
pub const NET_IF_ACCESS_MAXIMUM = NET_IF_ACCESS_TYPE.MAXIMUM;
pub const NET_IF_DIRECTION_TYPE = enum(i32) {
SENDRECEIVE = 0,
SENDONLY = 1,
RECEIVEONLY = 2,
MAXIMUM = 3,
};
pub const NET_IF_DIRECTION_SENDRECEIVE = NET_IF_DIRECTION_TYPE.SENDRECEIVE;
pub const NET_IF_DIRECTION_SENDONLY = NET_IF_DIRECTION_TYPE.SENDONLY;
pub const NET_IF_DIRECTION_RECEIVEONLY = NET_IF_DIRECTION_TYPE.RECEIVEONLY;
pub const NET_IF_DIRECTION_MAXIMUM = NET_IF_DIRECTION_TYPE.MAXIMUM;
pub const NET_IF_MEDIA_CONNECT_STATE = enum(i32) {
Unknown = 0,
Connected = 1,
Disconnected = 2,
};
pub const MediaConnectStateUnknown = NET_IF_MEDIA_CONNECT_STATE.Unknown;
pub const MediaConnectStateConnected = NET_IF_MEDIA_CONNECT_STATE.Connected;
pub const MediaConnectStateDisconnected = NET_IF_MEDIA_CONNECT_STATE.Disconnected;
pub const NET_IF_MEDIA_DUPLEX_STATE = enum(i32) {
Unknown = 0,
Half = 1,
Full = 2,
};
pub const MediaDuplexStateUnknown = NET_IF_MEDIA_DUPLEX_STATE.Unknown;
pub const MediaDuplexStateHalf = NET_IF_MEDIA_DUPLEX_STATE.Half;
pub const MediaDuplexStateFull = NET_IF_MEDIA_DUPLEX_STATE.Full;
pub const NET_PHYSICAL_LOCATION_LH = extern struct {
BusNumber: u32,
SlotNumber: u32,
FunctionNumber: u32,
};
pub const IF_COUNTED_STRING_LH = extern struct {
Length: u16,
String: [257]u16,
};
pub const IF_PHYSICAL_ADDRESS_LH = extern struct {
Length: u16,
Address: [32]u8,
};
pub const IF_ADMINISTRATIVE_STATE = enum(i32) {
DISABLED = 0,
ENABLED = 1,
DEMANDDIAL = 2,
};
pub const IF_ADMINISTRATIVE_DISABLED = IF_ADMINISTRATIVE_STATE.DISABLED;
pub const IF_ADMINISTRATIVE_ENABLED = IF_ADMINISTRATIVE_STATE.ENABLED;
pub const IF_ADMINISTRATIVE_DEMANDDIAL = IF_ADMINISTRATIVE_STATE.DEMANDDIAL;
pub const IF_OPER_STATUS = enum(i32) {
Up = 1,
Down = 2,
Testing = 3,
Unknown = 4,
Dormant = 5,
NotPresent = 6,
LowerLayerDown = 7,
};
pub const IfOperStatusUp = IF_OPER_STATUS.Up;
pub const IfOperStatusDown = IF_OPER_STATUS.Down;
pub const IfOperStatusTesting = IF_OPER_STATUS.Testing;
pub const IfOperStatusUnknown = IF_OPER_STATUS.Unknown;
pub const IfOperStatusDormant = IF_OPER_STATUS.Dormant;
pub const IfOperStatusNotPresent = IF_OPER_STATUS.NotPresent;
pub const IfOperStatusLowerLayerDown = IF_OPER_STATUS.LowerLayerDown;
pub const NDIS_INTERFACE_INFORMATION = extern struct {
ifOperStatus: NET_IF_OPER_STATUS,
ifOperStatusFlags: u32,
MediaConnectState: NET_IF_MEDIA_CONNECT_STATE,
MediaDuplexState: NET_IF_MEDIA_DUPLEX_STATE,
ifMtu: u32,
ifPromiscuousMode: BOOLEAN,
ifDeviceWakeUpEnable: BOOLEAN,
XmitLinkSpeed: u64,
RcvLinkSpeed: u64,
ifLastChange: u64,
ifCounterDiscontinuityTime: u64,
ifInUnknownProtos: u64,
ifInDiscards: u64,
ifInErrors: u64,
ifHCInOctets: u64,
ifHCInUcastPkts: u64,
ifHCInMulticastPkts: u64,
ifHCInBroadcastPkts: u64,
ifHCOutOctets: u64,
ifHCOutUcastPkts: u64,
ifHCOutMulticastPkts: u64,
ifHCOutBroadcastPkts: u64,
ifOutErrors: u64,
ifOutDiscards: u64,
ifHCInUcastOctets: u64,
ifHCInMulticastOctets: u64,
ifHCInBroadcastOctets: u64,
ifHCOutUcastOctets: u64,
ifHCOutMulticastOctets: u64,
ifHCOutBroadcastOctets: u64,
CompartmentId: u32,
SupportedStatistics: u32,
};
pub const MIB_NOTIFICATION_TYPE = enum(i32) {
ParameterNotification = 0,
AddInstance = 1,
DeleteInstance = 2,
InitialNotification = 3,
};
pub const MibParameterNotification = MIB_NOTIFICATION_TYPE.ParameterNotification;
pub const MibAddInstance = MIB_NOTIFICATION_TYPE.AddInstance;
pub const MibDeleteInstance = MIB_NOTIFICATION_TYPE.DeleteInstance;
pub const MibInitialNotification = MIB_NOTIFICATION_TYPE.InitialNotification;
pub const MIB_IF_ROW2 = extern struct {
InterfaceLuid: NET_LUID_LH,
InterfaceIndex: u32,
InterfaceGuid: Guid,
Alias: [257]u16,
Description: [257]u16,
PhysicalAddressLength: u32,
PhysicalAddress: [32]u8,
PermanentPhysicalAddress: [32]u8,
Mtu: u32,
Type: u32,
TunnelType: TUNNEL_TYPE,
MediaType: NDIS_MEDIUM,
PhysicalMediumType: NDIS_PHYSICAL_MEDIUM,
AccessType: NET_IF_ACCESS_TYPE,
DirectionType: NET_IF_DIRECTION_TYPE,
InterfaceAndOperStatusFlags: extern struct {
_bitfield: u8,
},
OperStatus: IF_OPER_STATUS,
AdminStatus: NET_IF_ADMIN_STATUS,
MediaConnectState: NET_IF_MEDIA_CONNECT_STATE,
NetworkGuid: Guid,
ConnectionType: NET_IF_CONNECTION_TYPE,
TransmitLinkSpeed: u64,
ReceiveLinkSpeed: u64,
InOctets: u64,
InUcastPkts: u64,
InNUcastPkts: u64,
InDiscards: u64,
InErrors: u64,
InUnknownProtos: u64,
InUcastOctets: u64,
InMulticastOctets: u64,
InBroadcastOctets: u64,
OutOctets: u64,
OutUcastPkts: u64,
OutNUcastPkts: u64,
OutDiscards: u64,
OutErrors: u64,
OutUcastOctets: u64,
OutMulticastOctets: u64,
OutBroadcastOctets: u64,
OutQLen: u64,
};
pub const MIB_IF_TABLE2 = extern struct {
NumEntries: u32,
Table: [1]MIB_IF_ROW2,
};
pub const MIB_IF_ENTRY_LEVEL = enum(i32) {
l = 0,
WithoutStatistics = 2,
};
pub const MibIfEntryNormal = MIB_IF_ENTRY_LEVEL.l;
pub const MibIfEntryNormalWithoutStatistics = MIB_IF_ENTRY_LEVEL.WithoutStatistics;
pub const MIB_IF_TABLE_LEVEL = enum(i32) {
Normal = 0,
Raw = 1,
NormalWithoutStatistics = 2,
};
pub const MibIfTableNormal = MIB_IF_TABLE_LEVEL.Normal;
pub const MibIfTableRaw = MIB_IF_TABLE_LEVEL.Raw;
pub const MibIfTableNormalWithoutStatistics = MIB_IF_TABLE_LEVEL.NormalWithoutStatistics;
pub const MIB_IPINTERFACE_ROW = extern struct {
Family: u16,
InterfaceLuid: NET_LUID_LH,
InterfaceIndex: u32,
MaxReassemblySize: u32,
InterfaceIdentifier: u64,
MinRouterAdvertisementInterval: u32,
MaxRouterAdvertisementInterval: u32,
AdvertisingEnabled: BOOLEAN,
ForwardingEnabled: BOOLEAN,
WeakHostSend: BOOLEAN,
WeakHostReceive: BOOLEAN,
UseAutomaticMetric: BOOLEAN,
UseNeighborUnreachabilityDetection: BOOLEAN,
ManagedAddressConfigurationSupported: BOOLEAN,
OtherStatefulConfigurationSupported: BOOLEAN,
AdvertiseDefaultRoute: BOOLEAN,
RouterDiscoveryBehavior: NL_ROUTER_DISCOVERY_BEHAVIOR,
DadTransmits: u32,
BaseReachableTime: u32,
RetransmitTime: u32,
PathMtuDiscoveryTimeout: u32,
LinkLocalAddressBehavior: NL_LINK_LOCAL_ADDRESS_BEHAVIOR,
LinkLocalAddressTimeout: u32,
ZoneIndices: [16]u32,
SitePrefixLength: u32,
Metric: u32,
NlMtu: u32,
Connected: BOOLEAN,
SupportsWakeUpPatterns: BOOLEAN,
SupportsNeighborDiscovery: BOOLEAN,
SupportsRouterDiscovery: BOOLEAN,
ReachableTime: u32,
TransmitOffload: NL_INTERFACE_OFFLOAD_ROD,
ReceiveOffload: NL_INTERFACE_OFFLOAD_ROD,
DisableDefaultRoutes: BOOLEAN,
};
pub const MIB_IPINTERFACE_TABLE = extern struct {
NumEntries: u32,
Table: [1]MIB_IPINTERFACE_ROW,
};
pub const MIB_IFSTACK_ROW = extern struct {
HigherLayerInterfaceIndex: u32,
LowerLayerInterfaceIndex: u32,
};
pub const MIB_INVERTEDIFSTACK_ROW = extern struct {
LowerLayerInterfaceIndex: u32,
HigherLayerInterfaceIndex: u32,
};
pub const MIB_IFSTACK_TABLE = extern struct {
NumEntries: u32,
Table: [1]MIB_IFSTACK_ROW,
};
pub const MIB_INVERTEDIFSTACK_TABLE = extern struct {
NumEntries: u32,
Table: [1]MIB_INVERTEDIFSTACK_ROW,
};
pub const PIPINTERFACE_CHANGE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
CallerContext: ?*anyopaque,
Row: ?*MIB_IPINTERFACE_ROW,
NotificationType: MIB_NOTIFICATION_TYPE,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
CallerContext: ?*anyopaque,
Row: ?*MIB_IPINTERFACE_ROW,
NotificationType: MIB_NOTIFICATION_TYPE,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES = extern struct {
InboundBandwidthInformation: NL_BANDWIDTH_INFORMATION,
OutboundBandwidthInformation: NL_BANDWIDTH_INFORMATION,
};
pub const MIB_UNICASTIPADDRESS_ROW = extern struct {
Address: SOCKADDR_INET,
InterfaceLuid: NET_LUID_LH,
InterfaceIndex: u32,
PrefixOrigin: NL_PREFIX_ORIGIN,
SuffixOrigin: NL_SUFFIX_ORIGIN,
ValidLifetime: u32,
PreferredLifetime: u32,
OnLinkPrefixLength: u8,
SkipAsSource: BOOLEAN,
DadState: NL_DAD_STATE,
ScopeId: SCOPE_ID,
CreationTimeStamp: LARGE_INTEGER,
};
pub const MIB_UNICASTIPADDRESS_TABLE = extern struct {
NumEntries: u32,
Table: [1]MIB_UNICASTIPADDRESS_ROW,
};
pub const PUNICAST_IPADDRESS_CHANGE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
CallerContext: ?*anyopaque,
Row: ?*MIB_UNICASTIPADDRESS_ROW,
NotificationType: MIB_NOTIFICATION_TYPE,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
CallerContext: ?*anyopaque,
Row: ?*MIB_UNICASTIPADDRESS_ROW,
NotificationType: MIB_NOTIFICATION_TYPE,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
CallerContext: ?*anyopaque,
AddressTable: ?*MIB_UNICASTIPADDRESS_TABLE,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
CallerContext: ?*anyopaque,
AddressTable: ?*MIB_UNICASTIPADDRESS_TABLE,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const MIB_ANYCASTIPADDRESS_ROW = extern struct {
Address: SOCKADDR_INET,
InterfaceLuid: NET_LUID_LH,
InterfaceIndex: u32,
ScopeId: SCOPE_ID,
};
pub const MIB_ANYCASTIPADDRESS_TABLE = extern struct {
NumEntries: u32,
Table: [1]MIB_ANYCASTIPADDRESS_ROW,
};
pub const MIB_MULTICASTIPADDRESS_ROW = extern struct {
Address: SOCKADDR_INET,
InterfaceIndex: u32,
InterfaceLuid: NET_LUID_LH,
ScopeId: SCOPE_ID,
};
pub const MIB_MULTICASTIPADDRESS_TABLE = extern struct {
NumEntries: u32,
Table: [1]MIB_MULTICASTIPADDRESS_ROW,
};
pub const IP_ADDRESS_PREFIX = extern struct {
Prefix: SOCKADDR_INET,
PrefixLength: u8,
};
pub const MIB_IPFORWARD_ROW2 = extern struct {
InterfaceLuid: NET_LUID_LH,
InterfaceIndex: u32,
DestinationPrefix: IP_ADDRESS_PREFIX,
NextHop: SOCKADDR_INET,
SitePrefixLength: u8,
ValidLifetime: u32,
PreferredLifetime: u32,
Metric: u32,
Protocol: NL_ROUTE_PROTOCOL,
Loopback: BOOLEAN,
AutoconfigureAddress: BOOLEAN,
Publish: BOOLEAN,
Immortal: BOOLEAN,
Age: u32,
Origin: NL_ROUTE_ORIGIN,
};
pub const MIB_IPFORWARD_TABLE2 = extern struct {
NumEntries: u32,
Table: [1]MIB_IPFORWARD_ROW2,
};
pub const PIPFORWARD_CHANGE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
CallerContext: ?*anyopaque,
Row: ?*MIB_IPFORWARD_ROW2,
NotificationType: MIB_NOTIFICATION_TYPE,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
CallerContext: ?*anyopaque,
Row: ?*MIB_IPFORWARD_ROW2,
NotificationType: MIB_NOTIFICATION_TYPE,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const MIB_IPPATH_ROW = extern struct {
Source: SOCKADDR_INET,
Destination: SOCKADDR_INET,
InterfaceLuid: NET_LUID_LH,
InterfaceIndex: u32,
CurrentNextHop: SOCKADDR_INET,
PathMtu: u32,
RttMean: u32,
RttDeviation: u32,
Anonymous: extern union {
LastReachable: u32,
LastUnreachable: u32,
},
IsReachable: BOOLEAN,
LinkTransmitSpeed: u64,
LinkReceiveSpeed: u64,
};
pub const MIB_IPPATH_TABLE = extern struct {
NumEntries: u32,
Table: [1]MIB_IPPATH_ROW,
};
pub const MIB_IPNET_ROW2 = extern struct {
Address: SOCKADDR_INET,
InterfaceIndex: u32,
InterfaceLuid: NET_LUID_LH,
PhysicalAddress: [32]u8,
PhysicalAddressLength: u32,
State: NL_NEIGHBOR_STATE,
Anonymous: extern union {
Anonymous: extern struct {
_bitfield: u8,
},
Flags: u8,
},
ReachabilityTime: extern union {
LastReachable: u32,
LastUnreachable: u32,
},
};
pub const MIB_IPNET_TABLE2 = extern struct {
NumEntries: u32,
Table: [1]MIB_IPNET_ROW2,
};
pub const PTEREDO_PORT_CHANGE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
CallerContext: ?*anyopaque,
Port: u16,
NotificationType: MIB_NOTIFICATION_TYPE,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
CallerContext: ?*anyopaque,
Port: u16,
NotificationType: MIB_NOTIFICATION_TYPE,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const DNS_SETTINGS = extern struct {
Version: u32,
Flags: u64,
Hostname: ?PWSTR,
Domain: ?PWSTR,
SearchList: ?PWSTR,
};
pub const DNS_SETTINGS2 = extern struct {
Version: u32,
Flags: u64,
Hostname: ?PWSTR,
Domain: ?PWSTR,
SearchList: ?PWSTR,
SettingFlags: u64,
};
pub const DNS_DOH_SERVER_SETTINGS = extern struct {
Template: ?PWSTR,
Flags: u64,
};
pub const DNS_SERVER_PROPERTY_TYPE = enum(i32) {
InvalidProperty = 0,
DohProperty = 1,
};
pub const DnsServerInvalidProperty = DNS_SERVER_PROPERTY_TYPE.InvalidProperty;
pub const DnsServerDohProperty = DNS_SERVER_PROPERTY_TYPE.DohProperty;
pub const DNS_SERVER_PROPERTY_TYPES = extern union {
DohSettings: ?*DNS_DOH_SERVER_SETTINGS,
};
pub const DNS_SERVER_PROPERTY = extern struct {
Version: u32,
ServerIndex: u32,
Type: DNS_SERVER_PROPERTY_TYPE,
Property: DNS_SERVER_PROPERTY_TYPES,
};
pub const DNS_INTERFACE_SETTINGS = extern struct {
Version: u32,
Flags: u64,
Domain: ?PWSTR,
NameServer: ?PWSTR,
SearchList: ?PWSTR,
RegistrationEnabled: u32,
RegisterAdapterName: u32,
EnableLLMNR: u32,
QueryAdapterName: u32,
ProfileNameServer: ?PWSTR,
};
pub const DNS_INTERFACE_SETTINGS_EX = extern struct {
SettingsV1: DNS_INTERFACE_SETTINGS,
DisableUnconstrainedQueries: u32,
SupplementalSearchList: ?PWSTR,
};
pub const DNS_INTERFACE_SETTINGS3 = extern struct {
Version: u32,
Flags: u64,
Domain: ?PWSTR,
NameServer: ?PWSTR,
SearchList: ?PWSTR,
RegistrationEnabled: u32,
RegisterAdapterName: u32,
EnableLLMNR: u32,
QueryAdapterName: u32,
ProfileNameServer: ?PWSTR,
DisableUnconstrainedQueries: u32,
SupplementalSearchList: ?PWSTR,
cServerProperties: u32,
ServerProperties: ?*DNS_SERVER_PROPERTY,
cProfileServerProperties: u32,
ProfileServerProperties: ?*DNS_SERVER_PROPERTY,
};
pub const PNETWORK_CONNECTIVITY_HINT_CHANGE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
CallerContext: ?*anyopaque,
ConnectivityHint: NL_NETWORK_CONNECTIVITY_HINT,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
CallerContext: ?*anyopaque,
ConnectivityHint: NL_NETWORK_CONNECTIVITY_HINT,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const MIB_OPAQUE_QUERY = extern struct {
dwVarId: u32,
rgdwVarIndex: [1]u32,
};
pub const MIB_IFNUMBER = extern struct {
dwValue: u32,
};
pub const MIB_IFROW = extern struct {
wszName: [256]u16,
dwIndex: u32,
dwType: u32,
dwMtu: u32,
dwSpeed: u32,
dwPhysAddrLen: u32,
bPhysAddr: [8]u8,
dwAdminStatus: u32,
dwOperStatus: INTERNAL_IF_OPER_STATUS,
dwLastChange: u32,
dwInOctets: u32,
dwInUcastPkts: u32,
dwInNUcastPkts: u32,
dwInDiscards: u32,
dwInErrors: u32,
dwInUnknownProtos: u32,
dwOutOctets: u32,
dwOutUcastPkts: u32,
dwOutNUcastPkts: u32,
dwOutDiscards: u32,
dwOutErrors: u32,
dwOutQLen: u32,
dwDescrLen: u32,
bDescr: [256]u8,
};
pub const MIB_IFTABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_IFROW,
};
pub const MIB_IPADDRROW_XP = extern struct {
dwAddr: u32,
dwIndex: u32,
dwMask: u32,
dwBCastAddr: u32,
dwReasmSize: u32,
unused1: u16,
wType: u16,
};
pub const MIB_IPADDRROW_W2K = extern struct {
dwAddr: u32,
dwIndex: u32,
dwMask: u32,
dwBCastAddr: u32,
dwReasmSize: u32,
unused1: u16,
unused2: u16,
};
pub const MIB_IPADDRTABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_IPADDRROW_XP,
};
pub const MIB_IPFORWARDNUMBER = extern struct {
dwValue: u32,
};
pub const MIB_IPFORWARD_TYPE = enum(i32) {
OTHER = 1,
INVALID = 2,
DIRECT = 3,
INDIRECT = 4,
};
// TODO: enum 'MIB_IPFORWARD_TYPE' has known issues with its value aliases
pub const MIB_IPFORWARDROW = extern struct {
dwForwardDest: u32,
dwForwardMask: u32,
dwForwardPolicy: u32,
dwForwardNextHop: u32,
dwForwardIfIndex: u32,
Anonymous1: extern union {
dwForwardType: u32,
ForwardType: MIB_IPFORWARD_TYPE,
},
Anonymous2: extern union {
dwForwardProto: u32,
ForwardProto: NL_ROUTE_PROTOCOL,
},
dwForwardAge: u32,
dwForwardNextHopAS: u32,
dwForwardMetric1: u32,
dwForwardMetric2: u32,
dwForwardMetric3: u32,
dwForwardMetric4: u32,
dwForwardMetric5: u32,
};
pub const MIB_IPFORWARDTABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_IPFORWARDROW,
};
pub const MIB_IPNET_TYPE = enum(i32) {
OTHER = 1,
INVALID = 2,
DYNAMIC = 3,
STATIC = 4,
};
pub const MIB_IPNET_TYPE_OTHER = MIB_IPNET_TYPE.OTHER;
pub const MIB_IPNET_TYPE_INVALID = MIB_IPNET_TYPE.INVALID;
pub const MIB_IPNET_TYPE_DYNAMIC = MIB_IPNET_TYPE.DYNAMIC;
pub const MIB_IPNET_TYPE_STATIC = MIB_IPNET_TYPE.STATIC;
pub const MIB_IPNETROW_LH = extern struct {
dwIndex: u32,
dwPhysAddrLen: u32,
bPhysAddr: [8]u8,
dwAddr: u32,
Anonymous: extern union {
dwType: u32,
Type: MIB_IPNET_TYPE,
},
};
pub const MIB_IPNETROW_W2K = extern struct {
dwIndex: u32,
dwPhysAddrLen: u32,
bPhysAddr: [8]u8,
dwAddr: u32,
dwType: u32,
};
pub const MIB_IPNETTABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_IPNETROW_LH,
};
pub const MIB_IPSTATS_FORWARDING = enum(i32) {
FORWARDING = 1,
NOT_FORWARDING = 2,
};
pub const MIB_IP_FORWARDING = MIB_IPSTATS_FORWARDING.FORWARDING;
pub const MIB_IP_NOT_FORWARDING = MIB_IPSTATS_FORWARDING.NOT_FORWARDING;
pub const MIB_IPSTATS_LH = extern struct {
Anonymous: extern union {
dwForwarding: u32,
Forwarding: MIB_IPSTATS_FORWARDING,
},
dwDefaultTTL: u32,
dwInReceives: u32,
dwInHdrErrors: u32,
dwInAddrErrors: u32,
dwForwDatagrams: u32,
dwInUnknownProtos: u32,
dwInDiscards: u32,
dwInDelivers: u32,
dwOutRequests: u32,
dwRoutingDiscards: u32,
dwOutDiscards: u32,
dwOutNoRoutes: u32,
dwReasmTimeout: u32,
dwReasmReqds: u32,
dwReasmOks: u32,
dwReasmFails: u32,
dwFragOks: u32,
dwFragFails: u32,
dwFragCreates: u32,
dwNumIf: u32,
dwNumAddr: u32,
dwNumRoutes: u32,
};
pub const MIB_IPSTATS_W2K = extern struct {
dwForwarding: u32,
dwDefaultTTL: u32,
dwInReceives: u32,
dwInHdrErrors: u32,
dwInAddrErrors: u32,
dwForwDatagrams: u32,
dwInUnknownProtos: u32,
dwInDiscards: u32,
dwInDelivers: u32,
dwOutRequests: u32,
dwRoutingDiscards: u32,
dwOutDiscards: u32,
dwOutNoRoutes: u32,
dwReasmTimeout: u32,
dwReasmReqds: u32,
dwReasmOks: u32,
dwReasmFails: u32,
dwFragOks: u32,
dwFragFails: u32,
dwFragCreates: u32,
dwNumIf: u32,
dwNumAddr: u32,
dwNumRoutes: u32,
};
pub const MIBICMPSTATS = extern struct {
dwMsgs: u32,
dwErrors: u32,
dwDestUnreachs: u32,
dwTimeExcds: u32,
dwParmProbs: u32,
dwSrcQuenchs: u32,
dwRedirects: u32,
dwEchos: u32,
dwEchoReps: u32,
dwTimestamps: u32,
dwTimestampReps: u32,
dwAddrMasks: u32,
dwAddrMaskReps: u32,
};
pub const MIBICMPINFO = extern struct {
icmpInStats: MIBICMPSTATS,
icmpOutStats: MIBICMPSTATS,
};
pub const MIB_ICMP = extern struct {
stats: MIBICMPINFO,
};
pub const MIBICMPSTATS_EX_XPSP1 = extern struct {
dwMsgs: u32,
dwErrors: u32,
rgdwTypeCount: [256]u32,
};
pub const MIB_ICMP_EX_XPSP1 = extern struct {
icmpInStats: MIBICMPSTATS_EX_XPSP1,
icmpOutStats: MIBICMPSTATS_EX_XPSP1,
};
pub const ICMP6_TYPE = enum(i32) {
ICMP6_DST_UNREACH = 1,
ICMP6_PACKET_TOO_BIG = 2,
ICMP6_TIME_EXCEEDED = 3,
ICMP6_PARAM_PROB = 4,
ICMP6_ECHO_REQUEST = 128,
ICMP6_ECHO_REPLY = 129,
ICMP6_MEMBERSHIP_QUERY = 130,
ICMP6_MEMBERSHIP_REPORT = 131,
ICMP6_MEMBERSHIP_REDUCTION = 132,
ND_ROUTER_SOLICIT = 133,
ND_ROUTER_ADVERT = 134,
ND_NEIGHBOR_SOLICIT = 135,
ND_NEIGHBOR_ADVERT = 136,
ND_REDIRECT = 137,
ICMP6_V2_MEMBERSHIP_REPORT = 143,
};
pub const ICMP6_DST_UNREACH = ICMP6_TYPE.ICMP6_DST_UNREACH;
pub const ICMP6_PACKET_TOO_BIG = ICMP6_TYPE.ICMP6_PACKET_TOO_BIG;
pub const ICMP6_TIME_EXCEEDED = ICMP6_TYPE.ICMP6_TIME_EXCEEDED;
pub const ICMP6_PARAM_PROB = ICMP6_TYPE.ICMP6_PARAM_PROB;
pub const ICMP6_ECHO_REQUEST = ICMP6_TYPE.ICMP6_ECHO_REQUEST;
pub const ICMP6_ECHO_REPLY = ICMP6_TYPE.ICMP6_ECHO_REPLY;
pub const ICMP6_MEMBERSHIP_QUERY = ICMP6_TYPE.ICMP6_MEMBERSHIP_QUERY;
pub const ICMP6_MEMBERSHIP_REPORT = ICMP6_TYPE.ICMP6_MEMBERSHIP_REPORT;
pub const ICMP6_MEMBERSHIP_REDUCTION = ICMP6_TYPE.ICMP6_MEMBERSHIP_REDUCTION;
pub const ND_ROUTER_SOLICIT = ICMP6_TYPE.ND_ROUTER_SOLICIT;
pub const ND_ROUTER_ADVERT = ICMP6_TYPE.ND_ROUTER_ADVERT;
pub const ND_NEIGHBOR_SOLICIT = ICMP6_TYPE.ND_NEIGHBOR_SOLICIT;
pub const ND_NEIGHBOR_ADVERT = ICMP6_TYPE.ND_NEIGHBOR_ADVERT;
pub const ND_REDIRECT = ICMP6_TYPE.ND_REDIRECT;
pub const ICMP6_V2_MEMBERSHIP_REPORT = ICMP6_TYPE.ICMP6_V2_MEMBERSHIP_REPORT;
pub const ICMP4_TYPE = enum(i32) {
ECHO_REPLY = 0,
DST_UNREACH = 3,
SOURCE_QUENCH = 4,
REDIRECT = 5,
ECHO_REQUEST = 8,
ROUTER_ADVERT = 9,
ROUTER_SOLICIT = 10,
TIME_EXCEEDED = 11,
PARAM_PROB = 12,
TIMESTAMP_REQUEST = 13,
TIMESTAMP_REPLY = 14,
MASK_REQUEST = 17,
MASK_REPLY = 18,
};
pub const ICMP4_ECHO_REPLY = ICMP4_TYPE.ECHO_REPLY;
pub const ICMP4_DST_UNREACH = ICMP4_TYPE.DST_UNREACH;
pub const ICMP4_SOURCE_QUENCH = ICMP4_TYPE.SOURCE_QUENCH;
pub const ICMP4_REDIRECT = ICMP4_TYPE.REDIRECT;
pub const ICMP4_ECHO_REQUEST = ICMP4_TYPE.ECHO_REQUEST;
pub const ICMP4_ROUTER_ADVERT = ICMP4_TYPE.ROUTER_ADVERT;
pub const ICMP4_ROUTER_SOLICIT = ICMP4_TYPE.ROUTER_SOLICIT;
pub const ICMP4_TIME_EXCEEDED = ICMP4_TYPE.TIME_EXCEEDED;
pub const ICMP4_PARAM_PROB = ICMP4_TYPE.PARAM_PROB;
pub const ICMP4_TIMESTAMP_REQUEST = ICMP4_TYPE.TIMESTAMP_REQUEST;
pub const ICMP4_TIMESTAMP_REPLY = ICMP4_TYPE.TIMESTAMP_REPLY;
pub const ICMP4_MASK_REQUEST = ICMP4_TYPE.MASK_REQUEST;
pub const ICMP4_MASK_REPLY = ICMP4_TYPE.MASK_REPLY;
pub const MIB_IPMCAST_OIF_XP = extern struct {
dwOutIfIndex: u32,
dwNextHopAddr: u32,
dwReserved: u32,
dwReserved1: u32,
};
pub const MIB_IPMCAST_OIF_W2K = extern struct {
dwOutIfIndex: u32,
dwNextHopAddr: u32,
pvReserved: ?*anyopaque,
dwReserved: u32,
};
pub const MIB_IPMCAST_MFE = extern struct {
dwGroup: u32,
dwSource: u32,
dwSrcMask: u32,
dwUpStrmNgbr: u32,
dwInIfIndex: u32,
dwInIfProtocol: u32,
dwRouteProtocol: u32,
dwRouteNetwork: u32,
dwRouteMask: u32,
ulUpTime: u32,
ulExpiryTime: u32,
ulTimeOut: u32,
ulNumOutIf: u32,
fFlags: u32,
dwReserved: u32,
rgmioOutInfo: [1]MIB_IPMCAST_OIF_XP,
};
pub const MIB_MFE_TABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_IPMCAST_MFE,
};
pub const MIB_IPMCAST_OIF_STATS_LH = extern struct {
dwOutIfIndex: u32,
dwNextHopAddr: u32,
dwDialContext: u32,
ulTtlTooLow: u32,
ulFragNeeded: u32,
ulOutPackets: u32,
ulOutDiscards: u32,
};
pub const MIB_IPMCAST_OIF_STATS_W2K = extern struct {
dwOutIfIndex: u32,
dwNextHopAddr: u32,
pvDialContext: ?*anyopaque,
ulTtlTooLow: u32,
ulFragNeeded: u32,
ulOutPackets: u32,
ulOutDiscards: u32,
};
pub const MIB_IPMCAST_MFE_STATS = extern struct {
dwGroup: u32,
dwSource: u32,
dwSrcMask: u32,
dwUpStrmNgbr: u32,
dwInIfIndex: u32,
dwInIfProtocol: u32,
dwRouteProtocol: u32,
dwRouteNetwork: u32,
dwRouteMask: u32,
ulUpTime: u32,
ulExpiryTime: u32,
ulNumOutIf: u32,
ulInPkts: u32,
ulInOctets: u32,
ulPktsDifferentIf: u32,
ulQueueOverflow: u32,
rgmiosOutStats: [1]MIB_IPMCAST_OIF_STATS_LH,
};
pub const MIB_MFE_STATS_TABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_IPMCAST_MFE_STATS,
};
pub const MIB_IPMCAST_MFE_STATS_EX_XP = extern struct {
dwGroup: u32,
dwSource: u32,
dwSrcMask: u32,
dwUpStrmNgbr: u32,
dwInIfIndex: u32,
dwInIfProtocol: u32,
dwRouteProtocol: u32,
dwRouteNetwork: u32,
dwRouteMask: u32,
ulUpTime: u32,
ulExpiryTime: u32,
ulNumOutIf: u32,
ulInPkts: u32,
ulInOctets: u32,
ulPktsDifferentIf: u32,
ulQueueOverflow: u32,
ulUninitMfe: u32,
ulNegativeMfe: u32,
ulInDiscards: u32,
ulInHdrErrors: u32,
ulTotalOutPackets: u32,
rgmiosOutStats: [1]MIB_IPMCAST_OIF_STATS_LH,
};
pub const MIB_MFE_STATS_TABLE_EX_XP = extern struct {
dwNumEntries: u32,
table: [1]?*MIB_IPMCAST_MFE_STATS_EX_XP,
};
pub const MIB_IPMCAST_GLOBAL = extern struct {
dwEnable: u32,
};
pub const MIB_IPMCAST_IF_ENTRY = extern struct {
dwIfIndex: u32,
dwTtl: u32,
dwProtocol: u32,
dwRateLimit: u32,
ulInMcastOctets: u32,
ulOutMcastOctets: u32,
};
pub const MIB_IPMCAST_IF_TABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_IPMCAST_IF_ENTRY,
};
pub const MIB_TCP_STATE = enum(i32) {
CLOSED = 1,
LISTEN = 2,
SYN_SENT = 3,
SYN_RCVD = 4,
ESTAB = 5,
FIN_WAIT1 = 6,
FIN_WAIT2 = 7,
CLOSE_WAIT = 8,
CLOSING = 9,
LAST_ACK = 10,
TIME_WAIT = 11,
DELETE_TCB = 12,
RESERVED = 100,
};
pub const MIB_TCP_STATE_CLOSED = MIB_TCP_STATE.CLOSED;
pub const MIB_TCP_STATE_LISTEN = MIB_TCP_STATE.LISTEN;
pub const MIB_TCP_STATE_SYN_SENT = MIB_TCP_STATE.SYN_SENT;
pub const MIB_TCP_STATE_SYN_RCVD = MIB_TCP_STATE.SYN_RCVD;
pub const MIB_TCP_STATE_ESTAB = MIB_TCP_STATE.ESTAB;
pub const MIB_TCP_STATE_FIN_WAIT1 = MIB_TCP_STATE.FIN_WAIT1;
pub const MIB_TCP_STATE_FIN_WAIT2 = MIB_TCP_STATE.FIN_WAIT2;
pub const MIB_TCP_STATE_CLOSE_WAIT = MIB_TCP_STATE.CLOSE_WAIT;
pub const MIB_TCP_STATE_CLOSING = MIB_TCP_STATE.CLOSING;
pub const MIB_TCP_STATE_LAST_ACK = MIB_TCP_STATE.LAST_ACK;
pub const MIB_TCP_STATE_TIME_WAIT = MIB_TCP_STATE.TIME_WAIT;
pub const MIB_TCP_STATE_DELETE_TCB = MIB_TCP_STATE.DELETE_TCB;
pub const MIB_TCP_STATE_RESERVED = MIB_TCP_STATE.RESERVED;
pub const TCP_CONNECTION_OFFLOAD_STATE = enum(i32) {
InHost = 0,
Offloading = 1,
Offloaded = 2,
Uploading = 3,
Max = 4,
};
pub const TcpConnectionOffloadStateInHost = TCP_CONNECTION_OFFLOAD_STATE.InHost;
pub const TcpConnectionOffloadStateOffloading = TCP_CONNECTION_OFFLOAD_STATE.Offloading;
pub const TcpConnectionOffloadStateOffloaded = TCP_CONNECTION_OFFLOAD_STATE.Offloaded;
pub const TcpConnectionOffloadStateUploading = TCP_CONNECTION_OFFLOAD_STATE.Uploading;
pub const TcpConnectionOffloadStateMax = TCP_CONNECTION_OFFLOAD_STATE.Max;
pub const MIB_TCPROW_LH = extern struct {
Anonymous: extern union {
dwState: u32,
State: MIB_TCP_STATE,
},
dwLocalAddr: u32,
dwLocalPort: u32,
dwRemoteAddr: u32,
dwRemotePort: u32,
};
pub const MIB_TCPROW_W2K = extern struct {
dwState: u32,
dwLocalAddr: u32,
dwLocalPort: u32,
dwRemoteAddr: u32,
dwRemotePort: u32,
};
pub const MIB_TCPTABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_TCPROW_LH,
};
pub const MIB_TCPROW2 = extern struct {
dwState: u32,
dwLocalAddr: u32,
dwLocalPort: u32,
dwRemoteAddr: u32,
dwRemotePort: u32,
dwOwningPid: u32,
dwOffloadState: TCP_CONNECTION_OFFLOAD_STATE,
};
pub const MIB_TCPTABLE2 = extern struct {
dwNumEntries: u32,
table: [1]MIB_TCPROW2,
};
pub const MIB_TCPROW_OWNER_PID = extern struct {
dwState: u32,
dwLocalAddr: u32,
dwLocalPort: u32,
dwRemoteAddr: u32,
dwRemotePort: u32,
dwOwningPid: u32,
};
pub const MIB_TCPTABLE_OWNER_PID = extern struct {
dwNumEntries: u32,
table: [1]MIB_TCPROW_OWNER_PID,
};
pub const MIB_TCPROW_OWNER_MODULE = extern struct {
dwState: u32,
dwLocalAddr: u32,
dwLocalPort: u32,
dwRemoteAddr: u32,
dwRemotePort: u32,
dwOwningPid: u32,
liCreateTimestamp: LARGE_INTEGER,
OwningModuleInfo: [16]u64,
};
pub const MIB_TCPTABLE_OWNER_MODULE = extern struct {
dwNumEntries: u32,
table: [1]MIB_TCPROW_OWNER_MODULE,
};
pub const MIB_TCP6ROW = extern struct {
State: MIB_TCP_STATE,
LocalAddr: IN6_ADDR,
dwLocalScopeId: u32,
dwLocalPort: u32,
RemoteAddr: IN6_ADDR,
dwRemoteScopeId: u32,
dwRemotePort: u32,
};
pub const MIB_TCP6TABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_TCP6ROW,
};
pub const MIB_TCP6ROW2 = extern struct {
LocalAddr: IN6_ADDR,
dwLocalScopeId: u32,
dwLocalPort: u32,
RemoteAddr: IN6_ADDR,
dwRemoteScopeId: u32,
dwRemotePort: u32,
State: MIB_TCP_STATE,
dwOwningPid: u32,
dwOffloadState: TCP_CONNECTION_OFFLOAD_STATE,
};
pub const MIB_TCP6TABLE2 = extern struct {
dwNumEntries: u32,
table: [1]MIB_TCP6ROW2,
};
pub const MIB_TCP6ROW_OWNER_PID = extern struct {
ucLocalAddr: [16]u8,
dwLocalScopeId: u32,
dwLocalPort: u32,
ucRemoteAddr: [16]u8,
dwRemoteScopeId: u32,
dwRemotePort: u32,
dwState: u32,
dwOwningPid: u32,
};
pub const MIB_TCP6TABLE_OWNER_PID = extern struct {
dwNumEntries: u32,
table: [1]MIB_TCP6ROW_OWNER_PID,
};
pub const MIB_TCP6ROW_OWNER_MODULE = extern struct {
ucLocalAddr: [16]u8,
dwLocalScopeId: u32,
dwLocalPort: u32,
ucRemoteAddr: [16]u8,
dwRemoteScopeId: u32,
dwRemotePort: u32,
dwState: u32,
dwOwningPid: u32,
liCreateTimestamp: LARGE_INTEGER,
OwningModuleInfo: [16]u64,
};
pub const MIB_TCP6TABLE_OWNER_MODULE = extern struct {
dwNumEntries: u32,
table: [1]MIB_TCP6ROW_OWNER_MODULE,
};
pub const TCP_RTO_ALGORITHM = enum(i32) {
TcpRtoAlgorithmOther = 1,
TcpRtoAlgorithmConstant = 2,
TcpRtoAlgorithmRsre = 3,
TcpRtoAlgorithmVanj = 4,
// MIB_TCP_RTO_OTHER = 1, this enum value conflicts with TcpRtoAlgorithmOther
// MIB_TCP_RTO_CONSTANT = 2, this enum value conflicts with TcpRtoAlgorithmConstant
// MIB_TCP_RTO_RSRE = 3, this enum value conflicts with TcpRtoAlgorithmRsre
// MIB_TCP_RTO_VANJ = 4, this enum value conflicts with TcpRtoAlgorithmVanj
};
pub const TcpRtoAlgorithmOther = TCP_RTO_ALGORITHM.TcpRtoAlgorithmOther;
pub const TcpRtoAlgorithmConstant = TCP_RTO_ALGORITHM.TcpRtoAlgorithmConstant;
pub const TcpRtoAlgorithmRsre = TCP_RTO_ALGORITHM.TcpRtoAlgorithmRsre;
pub const TcpRtoAlgorithmVanj = TCP_RTO_ALGORITHM.TcpRtoAlgorithmVanj;
pub const MIB_TCP_RTO_OTHER = TCP_RTO_ALGORITHM.TcpRtoAlgorithmOther;
pub const MIB_TCP_RTO_CONSTANT = TCP_RTO_ALGORITHM.TcpRtoAlgorithmConstant;
pub const MIB_TCP_RTO_RSRE = TCP_RTO_ALGORITHM.TcpRtoAlgorithmRsre;
pub const MIB_TCP_RTO_VANJ = TCP_RTO_ALGORITHM.TcpRtoAlgorithmVanj;
pub const MIB_TCPSTATS_LH = extern struct {
Anonymous: extern union {
dwRtoAlgorithm: u32,
RtoAlgorithm: TCP_RTO_ALGORITHM,
},
dwRtoMin: u32,
dwRtoMax: u32,
dwMaxConn: u32,
dwActiveOpens: u32,
dwPassiveOpens: u32,
dwAttemptFails: u32,
dwEstabResets: u32,
dwCurrEstab: u32,
dwInSegs: u32,
dwOutSegs: u32,
dwRetransSegs: u32,
dwInErrs: u32,
dwOutRsts: u32,
dwNumConns: u32,
};
pub const MIB_TCPSTATS_W2K = extern struct {
dwRtoAlgorithm: u32,
dwRtoMin: u32,
dwRtoMax: u32,
dwMaxConn: u32,
dwActiveOpens: u32,
dwPassiveOpens: u32,
dwAttemptFails: u32,
dwEstabResets: u32,
dwCurrEstab: u32,
dwInSegs: u32,
dwOutSegs: u32,
dwRetransSegs: u32,
dwInErrs: u32,
dwOutRsts: u32,
dwNumConns: u32,
};
pub const MIB_TCPSTATS2 = extern struct {
RtoAlgorithm: TCP_RTO_ALGORITHM,
dwRtoMin: u32,
dwRtoMax: u32,
dwMaxConn: u32,
dwActiveOpens: u32,
dwPassiveOpens: u32,
dwAttemptFails: u32,
dwEstabResets: u32,
dwCurrEstab: u32,
dw64InSegs: u64,
dw64OutSegs: u64,
dwRetransSegs: u32,
dwInErrs: u32,
dwOutRsts: u32,
dwNumConns: u32,
};
pub const MIB_UDPROW = extern struct {
dwLocalAddr: u32,
dwLocalPort: u32,
};
pub const MIB_UDPTABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_UDPROW,
};
pub const MIB_UDPROW_OWNER_PID = extern struct {
dwLocalAddr: u32,
dwLocalPort: u32,
dwOwningPid: u32,
};
pub const MIB_UDPTABLE_OWNER_PID = extern struct {
dwNumEntries: u32,
table: [1]MIB_UDPROW_OWNER_PID,
};
pub const MIB_UDPROW_OWNER_MODULE = extern struct {
dwLocalAddr: u32,
dwLocalPort: u32,
dwOwningPid: u32,
liCreateTimestamp: LARGE_INTEGER,
Anonymous: extern union {
Anonymous: extern struct {
_bitfield: i32,
},
dwFlags: i32,
},
OwningModuleInfo: [16]u64,
};
pub const MIB_UDPTABLE_OWNER_MODULE = extern struct {
dwNumEntries: u32,
table: [1]MIB_UDPROW_OWNER_MODULE,
};
pub const MIB_UDPROW2 = extern struct {
dwLocalAddr: u32,
dwLocalPort: u32,
dwOwningPid: u32,
liCreateTimestamp: LARGE_INTEGER,
Anonymous: extern union {
Anonymous: extern struct {
_bitfield: i32,
},
dwFlags: i32,
},
OwningModuleInfo: [16]u64,
dwRemoteAddr: u32,
dwRemotePort: u32,
};
pub const MIB_UDPTABLE2 = extern struct {
dwNumEntries: u32,
table: [1]MIB_UDPROW2,
};
pub const MIB_UDP6ROW = extern struct {
dwLocalAddr: IN6_ADDR,
dwLocalScopeId: u32,
dwLocalPort: u32,
};
pub const MIB_UDP6TABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_UDP6ROW,
};
pub const MIB_UDP6ROW_OWNER_PID = extern struct {
ucLocalAddr: [16]u8,
dwLocalScopeId: u32,
dwLocalPort: u32,
dwOwningPid: u32,
};
pub const MIB_UDP6TABLE_OWNER_PID = extern struct {
dwNumEntries: u32,
table: [1]MIB_UDP6ROW_OWNER_PID,
};
pub const MIB_UDP6ROW_OWNER_MODULE = extern struct {
ucLocalAddr: [16]u8,
dwLocalScopeId: u32,
dwLocalPort: u32,
dwOwningPid: u32,
liCreateTimestamp: LARGE_INTEGER,
Anonymous: extern union {
Anonymous: extern struct {
_bitfield: i32,
},
dwFlags: i32,
},
OwningModuleInfo: [16]u64,
};
pub const MIB_UDP6TABLE_OWNER_MODULE = extern struct {
dwNumEntries: u32,
table: [1]MIB_UDP6ROW_OWNER_MODULE,
};
pub const MIB_UDP6ROW2 = extern struct {
ucLocalAddr: [16]u8,
dwLocalScopeId: u32,
dwLocalPort: u32,
dwOwningPid: u32,
liCreateTimestamp: LARGE_INTEGER,
Anonymous: extern union {
Anonymous: extern struct {
_bitfield: i32,
},
dwFlags: i32,
},
OwningModuleInfo: [16]u64,
ucRemoteAddr: [16]u8,
dwRemoteScopeId: u32,
dwRemotePort: u32,
};
pub const MIB_UDP6TABLE2 = extern struct {
dwNumEntries: u32,
table: [1]MIB_UDP6ROW2,
};
pub const MIB_UDPSTATS = extern struct {
dwInDatagrams: u32,
dwNoPorts: u32,
dwInErrors: u32,
dwOutDatagrams: u32,
dwNumAddrs: u32,
};
pub const MIB_UDPSTATS2 = extern struct {
dw64InDatagrams: u64,
dwNoPorts: u32,
dwInErrors: u32,
dw64OutDatagrams: u64,
dwNumAddrs: u32,
};
pub const TCP_TABLE_CLASS = enum(i32) {
BASIC_LISTENER = 0,
BASIC_CONNECTIONS = 1,
BASIC_ALL = 2,
OWNER_PID_LISTENER = 3,
OWNER_PID_CONNECTIONS = 4,
OWNER_PID_ALL = 5,
OWNER_MODULE_LISTENER = 6,
OWNER_MODULE_CONNECTIONS = 7,
OWNER_MODULE_ALL = 8,
};
pub const TCP_TABLE_BASIC_LISTENER = TCP_TABLE_CLASS.BASIC_LISTENER;
pub const TCP_TABLE_BASIC_CONNECTIONS = TCP_TABLE_CLASS.BASIC_CONNECTIONS;
pub const TCP_TABLE_BASIC_ALL = TCP_TABLE_CLASS.BASIC_ALL;
pub const TCP_TABLE_OWNER_PID_LISTENER = TCP_TABLE_CLASS.OWNER_PID_LISTENER;
pub const TCP_TABLE_OWNER_PID_CONNECTIONS = TCP_TABLE_CLASS.OWNER_PID_CONNECTIONS;
pub const TCP_TABLE_OWNER_PID_ALL = TCP_TABLE_CLASS.OWNER_PID_ALL;
pub const TCP_TABLE_OWNER_MODULE_LISTENER = TCP_TABLE_CLASS.OWNER_MODULE_LISTENER;
pub const TCP_TABLE_OWNER_MODULE_CONNECTIONS = TCP_TABLE_CLASS.OWNER_MODULE_CONNECTIONS;
pub const TCP_TABLE_OWNER_MODULE_ALL = TCP_TABLE_CLASS.OWNER_MODULE_ALL;
pub const UDP_TABLE_CLASS = enum(i32) {
BASIC = 0,
OWNER_PID = 1,
OWNER_MODULE = 2,
};
pub const UDP_TABLE_BASIC = UDP_TABLE_CLASS.BASIC;
pub const UDP_TABLE_OWNER_PID = UDP_TABLE_CLASS.OWNER_PID;
pub const UDP_TABLE_OWNER_MODULE = UDP_TABLE_CLASS.OWNER_MODULE;
pub const TCPIP_OWNER_MODULE_INFO_CLASS = enum(i32) {
C = 0,
};
pub const TCPIP_OWNER_MODULE_INFO_BASIC = TCPIP_OWNER_MODULE_INFO_CLASS.C;
pub const TCPIP_OWNER_MODULE_BASIC_INFO = extern struct {
pModuleName: ?[*]u16,
pModulePath: ?[*]u16,
};
pub const MIB_IPMCAST_BOUNDARY = extern struct {
dwIfIndex: u32,
dwGroupAddress: u32,
dwGroupMask: u32,
dwStatus: u32,
};
pub const MIB_IPMCAST_BOUNDARY_TABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_IPMCAST_BOUNDARY,
};
pub const MIB_BOUNDARYROW = extern struct {
dwGroupAddress: u32,
dwGroupMask: u32,
};
pub const MIB_MCAST_LIMIT_ROW = extern struct {
dwTtl: u32,
dwRateLimit: u32,
};
pub const MIB_IPMCAST_SCOPE = extern struct {
dwGroupAddress: u32,
dwGroupMask: u32,
snNameBuffer: [256]u16,
dwStatus: u32,
};
pub const MIB_IPDESTROW = extern struct {
ForwardRow: MIB_IPFORWARDROW,
dwForwardPreference: u32,
dwForwardViewSet: u32,
};
pub const MIB_IPDESTTABLE = extern struct {
dwNumEntries: u32,
table: [1]MIB_IPDESTROW,
};
pub const MIB_BEST_IF = extern struct {
dwDestAddr: u32,
dwIfIndex: u32,
};
pub const MIB_PROXYARP = extern struct {
dwAddress: u32,
dwMask: u32,
dwIfIndex: u32,
};
pub const MIB_IFSTATUS = extern struct {
dwIfIndex: u32,
dwAdminStatus: u32,
dwOperationalStatus: u32,
bMHbeatActive: BOOL,
bMHbeatAlive: BOOL,
};
pub const MIB_ROUTESTATE = extern struct {
bRoutesSetToStack: BOOL,
};
pub const MIB_OPAQUE_INFO = extern struct {
dwId: u32,
Anonymous: extern union {
ullAlign: u64,
rgbyData: [1]u8,
},
};
pub const IP_ADDRESS_STRING = extern struct {
String: [16]CHAR,
};
pub const IP_ADDR_STRING = extern struct {
Next: ?*IP_ADDR_STRING,
IpAddress: IP_ADDRESS_STRING,
IpMask: IP_ADDRESS_STRING,
Context: u32,
};
pub const IP_ADAPTER_INFO = extern struct {
Next: ?*IP_ADAPTER_INFO,
ComboIndex: u32,
AdapterName: [260]CHAR,
Description: [132]CHAR,
AddressLength: u32,
Address: [8]u8,
Index: u32,
Type: u32,
DhcpEnabled: u32,
CurrentIpAddress: ?*IP_ADDR_STRING,
IpAddressList: IP_ADDR_STRING,
GatewayList: IP_ADDR_STRING,
DhcpServer: IP_ADDR_STRING,
HaveWins: BOOL,
PrimaryWinsServer: IP_ADDR_STRING,
SecondaryWinsServer: IP_ADDR_STRING,
LeaseObtained: i64,
LeaseExpires: i64,
};
pub const IP_ADAPTER_UNICAST_ADDRESS_LH = extern struct {
Anonymous: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
Flags: u32,
},
},
Next: ?*IP_ADAPTER_UNICAST_ADDRESS_LH,
Address: SOCKET_ADDRESS,
PrefixOrigin: NL_PREFIX_ORIGIN,
SuffixOrigin: NL_SUFFIX_ORIGIN,
DadState: NL_DAD_STATE,
ValidLifetime: u32,
PreferredLifetime: u32,
LeaseLifetime: u32,
OnLinkPrefixLength: u8,
};
pub const IP_ADAPTER_UNICAST_ADDRESS_XP = extern struct {
Anonymous: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
Flags: u32,
},
},
Next: ?*IP_ADAPTER_UNICAST_ADDRESS_XP,
Address: SOCKET_ADDRESS,
PrefixOrigin: NL_PREFIX_ORIGIN,
SuffixOrigin: NL_SUFFIX_ORIGIN,
DadState: NL_DAD_STATE,
ValidLifetime: u32,
PreferredLifetime: u32,
LeaseLifetime: u32,
};
pub const IP_ADAPTER_ANYCAST_ADDRESS_XP = extern struct {
Anonymous: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
Flags: u32,
},
},
Next: ?*IP_ADAPTER_ANYCAST_ADDRESS_XP,
Address: SOCKET_ADDRESS,
};
pub const IP_ADAPTER_MULTICAST_ADDRESS_XP = extern struct {
Anonymous: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
Flags: u32,
},
},
Next: ?*IP_ADAPTER_MULTICAST_ADDRESS_XP,
Address: SOCKET_ADDRESS,
};
pub const IP_ADAPTER_DNS_SERVER_ADDRESS_XP = extern struct {
Anonymous: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
Reserved: u32,
},
},
Next: ?*IP_ADAPTER_DNS_SERVER_ADDRESS_XP,
Address: SOCKET_ADDRESS,
};
pub const IP_ADAPTER_WINS_SERVER_ADDRESS_LH = extern struct {
Anonymous: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
Reserved: u32,
},
},
Next: ?*IP_ADAPTER_WINS_SERVER_ADDRESS_LH,
Address: SOCKET_ADDRESS,
};
pub const IP_ADAPTER_GATEWAY_ADDRESS_LH = extern struct {
Anonymous: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
Reserved: u32,
},
},
Next: ?*IP_ADAPTER_GATEWAY_ADDRESS_LH,
Address: SOCKET_ADDRESS,
};
pub const IP_ADAPTER_PREFIX_XP = extern struct {
Anonymous: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
Flags: u32,
},
},
Next: ?*IP_ADAPTER_PREFIX_XP,
Address: SOCKET_ADDRESS,
PrefixLength: u32,
};
pub const IP_ADAPTER_DNS_SUFFIX = extern struct {
Next: ?*IP_ADAPTER_DNS_SUFFIX,
String: [256]u16,
};
pub const IP_ADAPTER_ADDRESSES_LH = extern struct {
Anonymous1: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
IfIndex: u32,
},
},
Next: ?*IP_ADAPTER_ADDRESSES_LH,
AdapterName: ?[*]u8,
FirstUnicastAddress: ?*IP_ADAPTER_UNICAST_ADDRESS_LH,
FirstAnycastAddress: ?*IP_ADAPTER_ANYCAST_ADDRESS_XP,
FirstMulticastAddress: ?*IP_ADAPTER_MULTICAST_ADDRESS_XP,
FirstDnsServerAddress: ?*IP_ADAPTER_DNS_SERVER_ADDRESS_XP,
DnsSuffix: ?[*]u16,
Description: ?[*]u16,
FriendlyName: ?[*]u16,
PhysicalAddress: [8]u8,
PhysicalAddressLength: u32,
Anonymous2: extern union {
Flags: u32,
Anonymous: extern struct {
_bitfield: u32,
},
},
Mtu: u32,
IfType: u32,
OperStatus: IF_OPER_STATUS,
Ipv6IfIndex: u32,
ZoneIndices: [16]u32,
FirstPrefix: ?*IP_ADAPTER_PREFIX_XP,
TransmitLinkSpeed: u64,
ReceiveLinkSpeed: u64,
FirstWinsServerAddress: ?*IP_ADAPTER_WINS_SERVER_ADDRESS_LH,
FirstGatewayAddress: ?*IP_ADAPTER_GATEWAY_ADDRESS_LH,
Ipv4Metric: u32,
Ipv6Metric: u32,
Luid: NET_LUID_LH,
Dhcpv4Server: SOCKET_ADDRESS,
CompartmentId: u32,
NetworkGuid: Guid,
ConnectionType: NET_IF_CONNECTION_TYPE,
TunnelType: TUNNEL_TYPE,
Dhcpv6Server: SOCKET_ADDRESS,
Dhcpv6ClientDuid: [130]u8,
Dhcpv6ClientDuidLength: u32,
Dhcpv6Iaid: u32,
FirstDnsSuffix: ?*IP_ADAPTER_DNS_SUFFIX,
};
pub const IP_ADAPTER_ADDRESSES_XP = extern struct {
Anonymous: extern union {
Alignment: u64,
Anonymous: extern struct {
Length: u32,
IfIndex: u32,
},
},
Next: ?*IP_ADAPTER_ADDRESSES_XP,
AdapterName: ?[*]u8,
FirstUnicastAddress: ?*IP_ADAPTER_UNICAST_ADDRESS_XP,
FirstAnycastAddress: ?*IP_ADAPTER_ANYCAST_ADDRESS_XP,
FirstMulticastAddress: ?*IP_ADAPTER_MULTICAST_ADDRESS_XP,
FirstDnsServerAddress: ?*IP_ADAPTER_DNS_SERVER_ADDRESS_XP,
DnsSuffix: ?[*]u16,
Description: ?[*]u16,
FriendlyName: ?[*]u16,
PhysicalAddress: [8]u8,
PhysicalAddressLength: u32,
Flags: u32,
Mtu: u32,
IfType: u32,
OperStatus: IF_OPER_STATUS,
Ipv6IfIndex: u32,
ZoneIndices: [16]u32,
FirstPrefix: ?*IP_ADAPTER_PREFIX_XP,
};
pub const IP_PER_ADAPTER_INFO_W2KSP1 = extern struct {
AutoconfigEnabled: u32,
AutoconfigActive: u32,
CurrentDnsServer: ?*IP_ADDR_STRING,
DnsServerList: IP_ADDR_STRING,
};
pub const FIXED_INFO_W2KSP1 = extern struct {
HostName: [132]CHAR,
DomainName: [132]CHAR,
CurrentDnsServer: ?*IP_ADDR_STRING,
DnsServerList: IP_ADDR_STRING,
NodeType: u32,
ScopeId: [260]CHAR,
EnableRouting: u32,
EnableProxy: u32,
EnableDns: u32,
};
pub const ip_interface_name_info_w2ksp1 = extern struct {
Index: u32,
MediaType: u32,
ConnectionType: u8,
AccessType: u8,
DeviceGuid: Guid,
InterfaceGuid: Guid,
};
pub const TCP_ESTATS_TYPE = enum(i32) {
SynOpts = 0,
Data = 1,
SndCong = 2,
Path = 3,
SendBuff = 4,
Rec = 5,
ObsRec = 6,
Bandwidth = 7,
FineRtt = 8,
Maximum = 9,
};
pub const TcpConnectionEstatsSynOpts = TCP_ESTATS_TYPE.SynOpts;
pub const TcpConnectionEstatsData = TCP_ESTATS_TYPE.Data;
pub const TcpConnectionEstatsSndCong = TCP_ESTATS_TYPE.SndCong;
pub const TcpConnectionEstatsPath = TCP_ESTATS_TYPE.Path;
pub const TcpConnectionEstatsSendBuff = TCP_ESTATS_TYPE.SendBuff;
pub const TcpConnectionEstatsRec = TCP_ESTATS_TYPE.Rec;
pub const TcpConnectionEstatsObsRec = TCP_ESTATS_TYPE.ObsRec;
pub const TcpConnectionEstatsBandwidth = TCP_ESTATS_TYPE.Bandwidth;
pub const TcpConnectionEstatsFineRtt = TCP_ESTATS_TYPE.FineRtt;
pub const TcpConnectionEstatsMaximum = TCP_ESTATS_TYPE.Maximum;
pub const TCP_BOOLEAN_OPTIONAL = enum(i32) {
Disabled = 0,
Enabled = 1,
Unchanged = -1,
};
pub const TcpBoolOptDisabled = TCP_BOOLEAN_OPTIONAL.Disabled;
pub const TcpBoolOptEnabled = TCP_BOOLEAN_OPTIONAL.Enabled;
pub const TcpBoolOptUnchanged = TCP_BOOLEAN_OPTIONAL.Unchanged;
pub const TCP_ESTATS_SYN_OPTS_ROS_v0 = extern struct {
ActiveOpen: BOOLEAN,
MssRcvd: u32,
MssSent: u32,
};
pub const TCP_SOFT_ERROR = enum(i32) {
None = 0,
BelowDataWindow = 1,
AboveDataWindow = 2,
BelowAckWindow = 3,
AboveAckWindow = 4,
BelowTsWindow = 5,
AboveTsWindow = 6,
DataChecksumError = 7,
DataLengthError = 8,
MaxSoftError = 9,
};
pub const TcpErrorNone = TCP_SOFT_ERROR.None;
pub const TcpErrorBelowDataWindow = TCP_SOFT_ERROR.BelowDataWindow;
pub const TcpErrorAboveDataWindow = TCP_SOFT_ERROR.AboveDataWindow;
pub const TcpErrorBelowAckWindow = TCP_SOFT_ERROR.BelowAckWindow;
pub const TcpErrorAboveAckWindow = TCP_SOFT_ERROR.AboveAckWindow;
pub const TcpErrorBelowTsWindow = TCP_SOFT_ERROR.BelowTsWindow;
pub const TcpErrorAboveTsWindow = TCP_SOFT_ERROR.AboveTsWindow;
pub const TcpErrorDataChecksumError = TCP_SOFT_ERROR.DataChecksumError;
pub const TcpErrorDataLengthError = TCP_SOFT_ERROR.DataLengthError;
pub const TcpErrorMaxSoftError = TCP_SOFT_ERROR.MaxSoftError;
pub const TCP_ESTATS_DATA_ROD_v0 = extern struct {
DataBytesOut: u64,
DataSegsOut: u64,
DataBytesIn: u64,
DataSegsIn: u64,
SegsOut: u64,
SegsIn: u64,
SoftErrors: u32,
SoftErrorReason: u32,
SndUna: u32,
SndNxt: u32,
SndMax: u32,
ThruBytesAcked: u64,
RcvNxt: u32,
ThruBytesReceived: u64,
};
pub const TCP_ESTATS_DATA_RW_v0 = extern struct {
EnableCollection: BOOLEAN,
};
pub const TCP_ESTATS_SND_CONG_ROD_v0 = extern struct {
SndLimTransRwin: u32,
SndLimTimeRwin: u32,
SndLimBytesRwin: usize,
SndLimTransCwnd: u32,
SndLimTimeCwnd: u32,
SndLimBytesCwnd: usize,
SndLimTransSnd: u32,
SndLimTimeSnd: u32,
SndLimBytesSnd: usize,
SlowStart: u32,
CongAvoid: u32,
OtherReductions: u32,
CurCwnd: u32,
MaxSsCwnd: u32,
MaxCaCwnd: u32,
CurSsthresh: u32,
MaxSsthresh: u32,
MinSsthresh: u32,
};
pub const TCP_ESTATS_SND_CONG_ROS_v0 = extern struct {
LimCwnd: u32,
};
pub const TCP_ESTATS_SND_CONG_RW_v0 = extern struct {
EnableCollection: BOOLEAN,
};
pub const TCP_ESTATS_PATH_ROD_v0 = extern struct {
FastRetran: u32,
Timeouts: u32,
SubsequentTimeouts: u32,
CurTimeoutCount: u32,
AbruptTimeouts: u32,
PktsRetrans: u32,
BytesRetrans: u32,
DupAcksIn: u32,
SacksRcvd: u32,
SackBlocksRcvd: u32,
CongSignals: u32,
PreCongSumCwnd: u32,
PreCongSumRtt: u32,
PostCongSumRtt: u32,
PostCongCountRtt: u32,
EcnSignals: u32,
EceRcvd: u32,
SendStall: u32,
QuenchRcvd: u32,
RetranThresh: u32,
SndDupAckEpisodes: u32,
SumBytesReordered: u32,
NonRecovDa: u32,
NonRecovDaEpisodes: u32,
AckAfterFr: u32,
DsackDups: u32,
SampleRtt: u32,
SmoothedRtt: u32,
RttVar: u32,
MaxRtt: u32,
MinRtt: u32,
SumRtt: u32,
CountRtt: u32,
CurRto: u32,
MaxRto: u32,
MinRto: u32,
CurMss: u32,
MaxMss: u32,
MinMss: u32,
SpuriousRtoDetections: u32,
};
pub const TCP_ESTATS_PATH_RW_v0 = extern struct {
EnableCollection: BOOLEAN,
};
pub const TCP_ESTATS_SEND_BUFF_ROD_v0 = extern struct {
CurRetxQueue: usize,
MaxRetxQueue: usize,
CurAppWQueue: usize,
MaxAppWQueue: usize,
};
pub const TCP_ESTATS_SEND_BUFF_RW_v0 = extern struct {
EnableCollection: BOOLEAN,
};
pub const TCP_ESTATS_REC_ROD_v0 = extern struct {
CurRwinSent: u32,
MaxRwinSent: u32,
MinRwinSent: u32,
LimRwin: u32,
DupAckEpisodes: u32,
DupAcksOut: u32,
CeRcvd: u32,
EcnSent: u32,
EcnNoncesRcvd: u32,
CurReasmQueue: u32,
MaxReasmQueue: u32,
CurAppRQueue: usize,
MaxAppRQueue: usize,
WinScaleSent: u8,
};
pub const TCP_ESTATS_REC_RW_v0 = extern struct {
EnableCollection: BOOLEAN,
};
pub const TCP_ESTATS_OBS_REC_ROD_v0 = extern struct {
CurRwinRcvd: u32,
MaxRwinRcvd: u32,
MinRwinRcvd: u32,
WinScaleRcvd: u8,
};
pub const TCP_ESTATS_OBS_REC_RW_v0 = extern struct {
EnableCollection: BOOLEAN,
};
pub const TCP_ESTATS_BANDWIDTH_RW_v0 = extern struct {
EnableCollectionOutbound: TCP_BOOLEAN_OPTIONAL,
EnableCollectionInbound: TCP_BOOLEAN_OPTIONAL,
};
pub const TCP_ESTATS_BANDWIDTH_ROD_v0 = extern struct {
OutboundBandwidth: u64,
InboundBandwidth: u64,
OutboundInstability: u64,
InboundInstability: u64,
OutboundBandwidthPeaked: BOOLEAN,
InboundBandwidthPeaked: BOOLEAN,
};
pub const TCP_ESTATS_FINE_RTT_RW_v0 = extern struct {
EnableCollection: BOOLEAN,
};
pub const TCP_ESTATS_FINE_RTT_ROD_v0 = extern struct {
RttVar: u32,
MaxRtt: u32,
MinRtt: u32,
SumRtt: u32,
};
pub const INTERFACE_HARDWARE_TIMESTAMP_CAPABILITIES = extern struct {
PtpV2OverUdpIPv4EventMessageReceive: BOOLEAN,
PtpV2OverUdpIPv4AllMessageReceive: BOOLEAN,
PtpV2OverUdpIPv4EventMessageTransmit: BOOLEAN,
PtpV2OverUdpIPv4AllMessageTransmit: BOOLEAN,
PtpV2OverUdpIPv6EventMessageReceive: BOOLEAN,
PtpV2OverUdpIPv6AllMessageReceive: BOOLEAN,
PtpV2OverUdpIPv6EventMessageTransmit: BOOLEAN,
PtpV2OverUdpIPv6AllMessageTransmit: BOOLEAN,
AllReceive: BOOLEAN,
AllTransmit: BOOLEAN,
TaggedTransmit: BOOLEAN,
};
pub const INTERFACE_SOFTWARE_TIMESTAMP_CAPABILITIES = extern struct {
AllReceive: BOOLEAN,
AllTransmit: BOOLEAN,
TaggedTransmit: BOOLEAN,
};
pub const INTERFACE_TIMESTAMP_CAPABILITIES = extern struct {
HardwareClockFrequencyHz: u64,
SupportsCrossTimestamp: BOOLEAN,
HardwareCapabilities: INTERFACE_HARDWARE_TIMESTAMP_CAPABILITIES,
SoftwareCapabilities: INTERFACE_SOFTWARE_TIMESTAMP_CAPABILITIES,
};
pub const INTERFACE_HARDWARE_CROSSTIMESTAMP = extern struct {
SystemTimestamp1: u64,
HardwareClockTimestamp: u64,
SystemTimestamp2: u64,
};
pub const PINTERFACE_TIMESTAMP_CONFIG_CHANGE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
CallerContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
CallerContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const NET_ADDRESS_FORMAT = enum(i32) {
FORMAT_UNSPECIFIED = 0,
DNS_NAME = 1,
IPV4 = 2,
IPV6 = 3,
};
pub const NET_ADDRESS_FORMAT_UNSPECIFIED = NET_ADDRESS_FORMAT.FORMAT_UNSPECIFIED;
pub const NET_ADDRESS_DNS_NAME = NET_ADDRESS_FORMAT.DNS_NAME;
pub const NET_ADDRESS_IPV4 = NET_ADDRESS_FORMAT.IPV4;
pub const NET_ADDRESS_IPV6 = NET_ADDRESS_FORMAT.IPV6;
pub const GLOBAL_FILTER = enum(i32) {
FRAGMENTS = 2,
STRONGHOST = 8,
FRAGCACHE = 9,
};
pub const GF_FRAGMENTS = GLOBAL_FILTER.FRAGMENTS;
pub const GF_STRONGHOST = GLOBAL_FILTER.STRONGHOST;
pub const GF_FRAGCACHE = GLOBAL_FILTER.FRAGCACHE;
pub const PFFORWARD_ACTION = enum(i32) {
FORWARD = 0,
DROP = 1,
};
pub const PF_ACTION_FORWARD = PFFORWARD_ACTION.FORWARD;
pub const PF_ACTION_DROP = PFFORWARD_ACTION.DROP;
pub const PFADDRESSTYPE = enum(i32) {
@"4" = 0,
@"6" = 1,
};
pub const PF_IPV4 = PFADDRESSTYPE.@"4";
pub const PF_IPV6 = PFADDRESSTYPE.@"6";
pub const PF_FILTER_DESCRIPTOR = extern struct {
dwFilterFlags: u32,
dwRule: u32,
pfatType: PFADDRESSTYPE,
SrcAddr: ?*u8,
SrcMask: ?*u8,
DstAddr: ?*u8,
DstMask: ?*u8,
dwProtocol: u32,
fLateBound: u32,
wSrcPort: u16,
wDstPort: u16,
wSrcPortHighRange: u16,
wDstPortHighRange: u16,
};
pub const PF_FILTER_STATS = extern struct {
dwNumPacketsFiltered: u32,
info: PF_FILTER_DESCRIPTOR,
};
pub const PF_INTERFACE_STATS = extern struct {
pvDriverContext: ?*anyopaque,
dwFlags: u32,
dwInDrops: u32,
dwOutDrops: u32,
eaInAction: PFFORWARD_ACTION,
eaOutAction: PFFORWARD_ACTION,
dwNumInFilters: u32,
dwNumOutFilters: u32,
dwFrag: u32,
dwSpoof: u32,
dwReserved1: u32,
dwReserved2: u32,
liSYN: LARGE_INTEGER,
liTotalLogged: LARGE_INTEGER,
dwLostLogEntries: u32,
FilterInfo: [1]PF_FILTER_STATS,
};
pub const PF_LATEBIND_INFO = extern struct {
SrcAddr: ?*u8,
DstAddr: ?*u8,
Mask: ?*u8,
};
pub const PFFRAMETYPE = enum(i32) {
FILTER = 1,
FRAG = 2,
SPOOF = 3,
};
pub const PFFT_FILTER = PFFRAMETYPE.FILTER;
pub const PFFT_FRAG = PFFRAMETYPE.FRAG;
pub const PFFT_SPOOF = PFFRAMETYPE.SPOOF;
pub const PFLOGFRAME = extern struct {
Timestamp: LARGE_INTEGER,
pfeTypeOfFrame: PFFRAMETYPE,
dwTotalSizeUsed: u32,
dwFilterRule: u32,
wSizeOfAdditionalData: u16,
wSizeOfIpHeader: u16,
dwInterfaceName: u32,
dwIPIndex: u32,
bPacketData: [1]u8,
};
pub const ip_option_information32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Ttl: u8,
Tos: u8,
Flags: u8,
OptionsSize: u8,
OptionsData: ?*u8,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
pub const icmp_echo_reply32 = switch(@import("../zig.zig").arch) {
.X64, .Arm64 => extern struct {
Address: u32,
Status: u32,
RoundTripTime: u32,
DataSize: u16,
Reserved: u16,
Data: ?*anyopaque,
Options: ip_option_information32,
},
else => usize, // NOTE: this should be a @compileError but can't because of https://github.com/ziglang/zig/issues/9682
};
//--------------------------------------------------------------------------------
// Section: Functions (196)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIfEntry2(
Row: ?*MIB_IF_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "iphlpapi" fn GetIfEntry2Ex(
Level: MIB_IF_ENTRY_LEVEL,
Row: ?*MIB_IF_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIfTable2(
Table: ?*?*MIB_IF_TABLE2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIfTable2Ex(
Level: MIB_IF_TABLE_LEVEL,
Table: ?*?*MIB_IF_TABLE2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIfStackTable(
Table: ?*?*MIB_IFSTACK_TABLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetInvertedIfStackTable(
Table: ?*?*MIB_INVERTEDIFSTACK_TABLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIpInterfaceEntry(
Row: ?*MIB_IPINTERFACE_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIpInterfaceTable(
Family: u16,
Table: ?*?*MIB_IPINTERFACE_TABLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn InitializeIpInterfaceEntry(
Row: ?*MIB_IPINTERFACE_ROW,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn NotifyIpInterfaceChange(
Family: u16,
Callback: ?PIPINTERFACE_CHANGE_CALLBACK,
CallerContext: ?*anyopaque,
InitialNotification: BOOLEAN,
NotificationHandle: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn SetIpInterfaceEntry(
Row: ?*MIB_IPINTERFACE_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows8.0'
pub extern "iphlpapi" fn GetIpNetworkConnectionBandwidthEstimates(
InterfaceIndex: u32,
AddressFamily: u16,
BandwidthEstimates: ?*MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn CreateUnicastIpAddressEntry(
Row: ?*const MIB_UNICASTIPADDRESS_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn DeleteUnicastIpAddressEntry(
Row: ?*const MIB_UNICASTIPADDRESS_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetUnicastIpAddressEntry(
Row: ?*MIB_UNICASTIPADDRESS_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetUnicastIpAddressTable(
Family: u16,
Table: ?*?*MIB_UNICASTIPADDRESS_TABLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn InitializeUnicastIpAddressEntry(
Row: ?*MIB_UNICASTIPADDRESS_ROW,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn NotifyUnicastIpAddressChange(
Family: u16,
Callback: ?PUNICAST_IPADDRESS_CHANGE_CALLBACK,
CallerContext: ?*anyopaque,
InitialNotification: BOOLEAN,
NotificationHandle: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn NotifyStableUnicastIpAddressTable(
Family: u16,
Table: ?*?*MIB_UNICASTIPADDRESS_TABLE,
CallerCallback: ?PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK,
CallerContext: ?*anyopaque,
NotificationHandle: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn SetUnicastIpAddressEntry(
Row: ?*const MIB_UNICASTIPADDRESS_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn CreateAnycastIpAddressEntry(
Row: ?*const MIB_ANYCASTIPADDRESS_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn DeleteAnycastIpAddressEntry(
Row: ?*const MIB_ANYCASTIPADDRESS_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetAnycastIpAddressEntry(
Row: ?*MIB_ANYCASTIPADDRESS_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetAnycastIpAddressTable(
Family: u16,
Table: ?*?*MIB_ANYCASTIPADDRESS_TABLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetMulticastIpAddressEntry(
Row: ?*MIB_MULTICASTIPADDRESS_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetMulticastIpAddressTable(
Family: u16,
Table: ?*?*MIB_MULTICASTIPADDRESS_TABLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn CreateIpForwardEntry2(
Row: ?*const MIB_IPFORWARD_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn DeleteIpForwardEntry2(
Row: ?*const MIB_IPFORWARD_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetBestRoute2(
InterfaceLuid: ?*NET_LUID_LH,
InterfaceIndex: u32,
SourceAddress: ?*const SOCKADDR_INET,
DestinationAddress: ?*const SOCKADDR_INET,
AddressSortOptions: u32,
BestRoute: ?*MIB_IPFORWARD_ROW2,
BestSourceAddress: ?*SOCKADDR_INET,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIpForwardEntry2(
Row: ?*MIB_IPFORWARD_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIpForwardTable2(
Family: u16,
Table: ?*?*MIB_IPFORWARD_TABLE2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn InitializeIpForwardEntry(
Row: ?*MIB_IPFORWARD_ROW2,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn NotifyRouteChange2(
AddressFamily: u16,
Callback: ?PIPFORWARD_CHANGE_CALLBACK,
CallerContext: ?*anyopaque,
InitialNotification: BOOLEAN,
NotificationHandle: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn SetIpForwardEntry2(
Route: ?*const MIB_IPFORWARD_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn FlushIpPathTable(
Family: u16,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIpPathEntry(
Row: ?*MIB_IPPATH_ROW,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIpPathTable(
Family: u16,
Table: ?*?*MIB_IPPATH_TABLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn CreateIpNetEntry2(
Row: ?*const MIB_IPNET_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn DeleteIpNetEntry2(
Row: ?*const MIB_IPNET_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn FlushIpNetTable2(
Family: u16,
InterfaceIndex: u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIpNetEntry2(
Row: ?*MIB_IPNET_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetIpNetTable2(
Family: u16,
Table: ?*?*MIB_IPNET_TABLE2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ResolveIpNetEntry2(
Row: ?*MIB_IPNET_ROW2,
SourceAddress: ?*const SOCKADDR_INET,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn SetIpNetEntry2(
Row: ?*MIB_IPNET_ROW2,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn NotifyTeredoPortChange(
Callback: ?PTEREDO_PORT_CHANGE_CALLBACK,
CallerContext: ?*anyopaque,
InitialNotification: BOOLEAN,
NotificationHandle: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetTeredoPort(
Port: ?*u16,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn CancelMibChangeNotify2(
NotificationHandle: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn FreeMibTable(
Memory: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn CreateSortedAddressPairs(
SourceAddressList: ?*const SOCKADDR_IN6,
SourceAddressCount: u32,
DestinationAddressList: ?*const SOCKADDR_IN6,
DestinationAddressCount: u32,
AddressSortOptions: u32,
SortedAddressPairList: ?*?*SOCKADDR_IN6_PAIR,
SortedAddressPairCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn ConvertCompartmentGuidToId(
CompartmentGuid: ?*const Guid,
CompartmentId: ?*u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn ConvertCompartmentIdToGuid(
CompartmentId: u32,
CompartmentGuid: ?*Guid,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceNameToLuidA(
InterfaceName: ?[*:0]const u8,
InterfaceLuid: ?*NET_LUID_LH,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceNameToLuidW(
InterfaceName: ?[*:0]const u16,
InterfaceLuid: ?*NET_LUID_LH,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceLuidToNameA(
InterfaceLuid: ?*const NET_LUID_LH,
InterfaceName: [*:0]u8,
Length: usize,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceLuidToNameW(
InterfaceLuid: ?*const NET_LUID_LH,
InterfaceName: [*:0]u16,
Length: usize,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceLuidToIndex(
InterfaceLuid: ?*const NET_LUID_LH,
InterfaceIndex: ?*u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceIndexToLuid(
InterfaceIndex: u32,
InterfaceLuid: ?*NET_LUID_LH,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceLuidToAlias(
InterfaceLuid: ?*const NET_LUID_LH,
InterfaceAlias: [*:0]u16,
Length: usize,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceAliasToLuid(
InterfaceAlias: ?[*:0]const u16,
InterfaceLuid: ?*NET_LUID_LH,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceLuidToGuid(
InterfaceLuid: ?*const NET_LUID_LH,
InterfaceGuid: ?*Guid,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertInterfaceGuidToLuid(
InterfaceGuid: ?*const Guid,
InterfaceLuid: ?*NET_LUID_LH,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn if_nametoindex(
InterfaceName: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn if_indextoname(
InterfaceIndex: u32,
InterfaceName: *[256]u8,
) callconv(@import("std").os.windows.WINAPI) ?PSTR;
pub extern "iphlpapi" fn GetCurrentThreadCompartmentId(
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn SetCurrentThreadCompartmentId(
CompartmentId: u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn GetCurrentThreadCompartmentScope(
CompartmentScope: ?*u32,
CompartmentId: ?*u32,
) callconv(@import("std").os.windows.WINAPI) void;
pub extern "iphlpapi" fn SetCurrentThreadCompartmentScope(
CompartmentScope: u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn GetJobCompartmentId(
JobHandle: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn SetJobCompartmentId(
JobHandle: ?HANDLE,
CompartmentId: u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn GetSessionCompartmentId(
SessionId: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn SetSessionCompartmentId(
SessionId: u32,
CompartmentId: u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows10.0.10240'
pub extern "iphlpapi" fn GetDefaultCompartmentId(
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn GetNetworkInformation(
NetworkGuid: ?*const Guid,
CompartmentId: ?*u32,
SiteId: ?*u32,
NetworkName: [*]u16,
Length: u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn SetNetworkInformation(
NetworkGuid: ?*const Guid,
CompartmentId: u32,
NetworkName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertLengthToIpv4Mask(
MaskLength: u32,
Mask: ?*u32,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn ConvertIpv4MaskToLength(
Mask: u32,
MaskLength: ?*u8,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn GetDnsSettings(
Settings: ?*DNS_SETTINGS,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn FreeDnsSettings(
Settings: ?*DNS_SETTINGS,
) callconv(@import("std").os.windows.WINAPI) void;
pub extern "iphlpapi" fn SetDnsSettings(
Settings: ?*const DNS_SETTINGS,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn GetInterfaceDnsSettings(
Interface: Guid,
Settings: ?*DNS_INTERFACE_SETTINGS,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
pub extern "iphlpapi" fn FreeInterfaceDnsSettings(
Settings: ?*DNS_INTERFACE_SETTINGS,
) callconv(@import("std").os.windows.WINAPI) void;
pub extern "iphlpapi" fn SetInterfaceDnsSettings(
Interface: Guid,
Settings: ?*const DNS_INTERFACE_SETTINGS,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows10.0.19041'
pub extern "iphlpapi" fn GetNetworkConnectivityHint(
ConnectivityHint: ?*NL_NETWORK_CONNECTIVITY_HINT,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows10.0.19041'
pub extern "iphlpapi" fn GetNetworkConnectivityHintForInterface(
InterfaceIndex: u32,
ConnectivityHint: ?*NL_NETWORK_CONNECTIVITY_HINT,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows10.0.19041'
pub extern "iphlpapi" fn NotifyNetworkConnectivityHintChange(
Callback: ?PNETWORK_CONNECTIVITY_HINT_CHANGE_CALLBACK,
CallerContext: ?*anyopaque,
InitialNotification: BOOLEAN,
NotificationHandle: ?*?HANDLE,
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn IcmpCreateFile(
) callconv(@import("std").os.windows.WINAPI) IcmpHandle;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn Icmp6CreateFile(
) callconv(@import("std").os.windows.WINAPI) IcmpHandle;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn IcmpCloseHandle(
IcmpHandle: IcmpHandle,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn IcmpSendEcho(
IcmpHandle: IcmpHandle,
DestinationAddress: u32,
// TODO: what to do with BytesParamIndex 3?
RequestData: ?*anyopaque,
RequestSize: u16,
RequestOptions: ?*ip_option_information,
// TODO: what to do with BytesParamIndex 6?
ReplyBuffer: ?*anyopaque,
ReplySize: u32,
Timeout: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn IcmpSendEcho2(
IcmpHandle: IcmpHandle,
Event: ?HANDLE,
ApcRoutine: ?PIO_APC_ROUTINE,
ApcContext: ?*anyopaque,
DestinationAddress: u32,
// TODO: what to do with BytesParamIndex 6?
RequestData: ?*anyopaque,
RequestSize: u16,
RequestOptions: ?*ip_option_information,
// TODO: what to do with BytesParamIndex 9?
ReplyBuffer: ?*anyopaque,
ReplySize: u32,
Timeout: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn IcmpSendEcho2Ex(
IcmpHandle: IcmpHandle,
Event: ?HANDLE,
ApcRoutine: ?PIO_APC_ROUTINE,
ApcContext: ?*anyopaque,
SourceAddress: u32,
DestinationAddress: u32,
// TODO: what to do with BytesParamIndex 7?
RequestData: ?*anyopaque,
RequestSize: u16,
RequestOptions: ?*ip_option_information,
// TODO: what to do with BytesParamIndex 10?
ReplyBuffer: ?*anyopaque,
ReplySize: u32,
Timeout: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn Icmp6SendEcho2(
IcmpHandle: IcmpHandle,
Event: ?HANDLE,
ApcRoutine: ?PIO_APC_ROUTINE,
ApcContext: ?*anyopaque,
SourceAddress: ?*SOCKADDR_IN6,
DestinationAddress: ?*SOCKADDR_IN6,
// TODO: what to do with BytesParamIndex 7?
RequestData: ?*anyopaque,
RequestSize: u16,
RequestOptions: ?*ip_option_information,
// TODO: what to do with BytesParamIndex 10?
ReplyBuffer: ?*anyopaque,
ReplySize: u32,
Timeout: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn IcmpParseReplies(
// TODO: what to do with BytesParamIndex 1?
ReplyBuffer: ?*anyopaque,
ReplySize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn Icmp6ParseReplies(
// TODO: what to do with BytesParamIndex 1?
ReplyBuffer: ?*anyopaque,
ReplySize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetNumberOfInterfaces(
pdwNumIf: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetIfEntry(
pIfRow: ?*MIB_IFROW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetIfTable(
// TODO: what to do with BytesParamIndex 1?
pIfTable: ?*MIB_IFTABLE,
pdwSize: ?*u32,
bOrder: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetIpAddrTable(
// TODO: what to do with BytesParamIndex 1?
pIpAddrTable: ?*MIB_IPADDRTABLE,
pdwSize: ?*u32,
bOrder: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetIpNetTable(
// TODO: what to do with BytesParamIndex 1?
IpNetTable: ?*MIB_IPNETTABLE,
SizePointer: ?*u32,
Order: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetIpForwardTable(
// TODO: what to do with BytesParamIndex 1?
pIpForwardTable: ?*MIB_IPFORWARDTABLE,
pdwSize: ?*u32,
bOrder: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetTcpTable(
// TODO: what to do with BytesParamIndex 1?
TcpTable: ?*MIB_TCPTABLE,
SizePointer: ?*u32,
Order: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetExtendedTcpTable(
// TODO: what to do with BytesParamIndex 1?
pTcpTable: ?*anyopaque,
pdwSize: ?*u32,
bOrder: BOOL,
ulAf: u32,
TableClass: TCP_TABLE_CLASS,
Reserved: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetOwnerModuleFromTcpEntry(
pTcpEntry: ?*MIB_TCPROW_OWNER_MODULE,
Class: TCPIP_OWNER_MODULE_INFO_CLASS,
// TODO: what to do with BytesParamIndex 3?
pBuffer: ?*anyopaque,
pdwSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetUdpTable(
// TODO: what to do with BytesParamIndex 1?
UdpTable: ?*MIB_UDPTABLE,
SizePointer: ?*u32,
Order: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetExtendedUdpTable(
// TODO: what to do with BytesParamIndex 1?
pUdpTable: ?*anyopaque,
pdwSize: ?*u32,
bOrder: BOOL,
ulAf: u32,
TableClass: UDP_TABLE_CLASS,
Reserved: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetOwnerModuleFromUdpEntry(
pUdpEntry: ?*MIB_UDPROW_OWNER_MODULE,
Class: TCPIP_OWNER_MODULE_INFO_CLASS,
// TODO: what to do with BytesParamIndex 3?
pBuffer: ?*anyopaque,
pdwSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetTcpTable2(
// TODO: what to do with BytesParamIndex 1?
TcpTable: ?*MIB_TCPTABLE2,
SizePointer: ?*u32,
Order: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetTcp6Table(
// TODO: what to do with BytesParamIndex 1?
TcpTable: ?*MIB_TCP6TABLE,
SizePointer: ?*u32,
Order: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetTcp6Table2(
// TODO: what to do with BytesParamIndex 1?
TcpTable: ?*MIB_TCP6TABLE2,
SizePointer: ?*u32,
Order: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetPerTcpConnectionEStats(
Row: ?*MIB_TCPROW_LH,
EstatsType: TCP_ESTATS_TYPE,
// TODO: what to do with BytesParamIndex 4?
Rw: ?*u8,
RwVersion: u32,
RwSize: u32,
// TODO: what to do with BytesParamIndex 7?
Ros: ?*u8,
RosVersion: u32,
RosSize: u32,
// TODO: what to do with BytesParamIndex 10?
Rod: ?*u8,
RodVersion: u32,
RodSize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn SetPerTcpConnectionEStats(
Row: ?*MIB_TCPROW_LH,
EstatsType: TCP_ESTATS_TYPE,
// TODO: what to do with BytesParamIndex 4?
Rw: ?*u8,
RwVersion: u32,
RwSize: u32,
Offset: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetPerTcp6ConnectionEStats(
Row: ?*MIB_TCP6ROW,
EstatsType: TCP_ESTATS_TYPE,
// TODO: what to do with BytesParamIndex 4?
Rw: ?*u8,
RwVersion: u32,
RwSize: u32,
// TODO: what to do with BytesParamIndex 7?
Ros: ?*u8,
RosVersion: u32,
RosSize: u32,
// TODO: what to do with BytesParamIndex 10?
Rod: ?*u8,
RodVersion: u32,
RodSize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn SetPerTcp6ConnectionEStats(
Row: ?*MIB_TCP6ROW,
EstatsType: TCP_ESTATS_TYPE,
// TODO: what to do with BytesParamIndex 4?
Rw: ?*u8,
RwVersion: u32,
RwSize: u32,
Offset: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetOwnerModuleFromTcp6Entry(
pTcpEntry: ?*MIB_TCP6ROW_OWNER_MODULE,
Class: TCPIP_OWNER_MODULE_INFO_CLASS,
// TODO: what to do with BytesParamIndex 3?
pBuffer: ?*anyopaque,
pdwSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetUdp6Table(
// TODO: what to do with BytesParamIndex 1?
Udp6Table: ?*MIB_UDP6TABLE,
SizePointer: ?*u32,
Order: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn GetOwnerModuleFromUdp6Entry(
pUdpEntry: ?*MIB_UDP6ROW_OWNER_MODULE,
Class: TCPIP_OWNER_MODULE_INFO_CLASS,
// TODO: what to do with BytesParamIndex 3?
pBuffer: ?*anyopaque,
pdwSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn GetOwnerModuleFromPidAndInfo(
ulPid: u32,
pInfo: ?*u64,
Class: TCPIP_OWNER_MODULE_INFO_CLASS,
// TODO: what to do with BytesParamIndex 4?
pBuffer: ?*anyopaque,
pdwSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetIpStatistics(
Statistics: ?*MIB_IPSTATS_LH,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetIcmpStatistics(
Statistics: ?*MIB_ICMP,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetTcpStatistics(
Statistics: ?*MIB_TCPSTATS_LH,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetUdpStatistics(
Stats: ?*MIB_UDPSTATS,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn SetIpStatisticsEx(
Statistics: ?*MIB_IPSTATS_LH,
Family: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn GetIpStatisticsEx(
Statistics: ?*MIB_IPSTATS_LH,
Family: ADDRESS_FAMILY,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn GetIcmpStatisticsEx(
Statistics: ?*MIB_ICMP_EX_XPSP1,
Family: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn GetTcpStatisticsEx(
Statistics: ?*MIB_TCPSTATS_LH,
Family: ADDRESS_FAMILY,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn GetUdpStatisticsEx(
Statistics: ?*MIB_UDPSTATS,
Family: ADDRESS_FAMILY,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows10.0.16299'
pub extern "iphlpapi" fn GetTcpStatisticsEx2(
Statistics: ?*MIB_TCPSTATS2,
Family: ADDRESS_FAMILY,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows10.0.16299'
pub extern "iphlpapi" fn GetUdpStatisticsEx2(
Statistics: ?*MIB_UDPSTATS2,
Family: ADDRESS_FAMILY,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn SetIfEntry(
pIfRow: ?*MIB_IFROW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn CreateIpForwardEntry(
pRoute: ?*MIB_IPFORWARDROW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn SetIpForwardEntry(
pRoute: ?*MIB_IPFORWARDROW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn DeleteIpForwardEntry(
pRoute: ?*MIB_IPFORWARDROW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn SetIpStatistics(
pIpStats: ?*MIB_IPSTATS_LH,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn SetIpTTL(
nTTL: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn CreateIpNetEntry(
pArpEntry: ?*MIB_IPNETROW_LH,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn SetIpNetEntry(
pArpEntry: ?*MIB_IPNETROW_LH,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn DeleteIpNetEntry(
pArpEntry: ?*MIB_IPNETROW_LH,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn FlushIpNetTable(
dwIfIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn CreateProxyArpEntry(
dwAddress: u32,
dwMask: u32,
dwIfIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn DeleteProxyArpEntry(
dwAddress: u32,
dwMask: u32,
dwIfIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn SetTcpEntry(
pTcpRow: ?*MIB_TCPROW_LH,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetInterfaceInfo(
// TODO: what to do with BytesParamIndex 1?
pIfTable: ?*IP_INTERFACE_INFO,
dwOutBufLen: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn GetUniDirectionalAdapterInfo(
// TODO: what to do with BytesParamIndex 1?
pIPIfInfo: ?*IP_UNIDIRECTIONAL_ADAPTER_ADDRESS,
dwOutBufLen: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn NhpAllocateAndGetInterfaceInfoFromStack(
ppTable: ?*?*ip_interface_name_info_w2ksp1,
pdwCount: ?*u32,
bOrder: BOOL,
hHeap: ?HANDLE,
dwFlags: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetBestInterface(
dwDestAddr: u32,
pdwBestIfIndex: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn GetBestInterfaceEx(
pDestAddr: ?*SOCKADDR,
pdwBestIfIndex: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetBestRoute(
dwDestAddr: u32,
dwSourceAddr: u32,
pBestRoute: ?*MIB_IPFORWARDROW,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn NotifyAddrChange(
Handle: ?*?HANDLE,
overlapped: ?*OVERLAPPED,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn NotifyRouteChange(
Handle: ?*?HANDLE,
overlapped: ?*OVERLAPPED,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn CancelIPChangeNotify(
notifyOverlapped: ?*OVERLAPPED,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetAdapterIndex(
AdapterName: ?PWSTR,
IfIndex: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn AddIPAddress(
Address: u32,
IpMask: u32,
IfIndex: u32,
NTEContext: ?*u32,
NTEInstance: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn DeleteIPAddress(
NTEContext: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetNetworkParams(
// TODO: what to do with BytesParamIndex 1?
pFixedInfo: ?*FIXED_INFO_W2KSP1,
pOutBufLen: ?*u32,
) callconv(@import("std").os.windows.WINAPI) WIN32_ERROR;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetAdaptersInfo(
// TODO: what to do with BytesParamIndex 1?
AdapterInfo: ?*IP_ADAPTER_INFO,
SizePointer: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn GetAdapterOrderMap(
) callconv(@import("std").os.windows.WINAPI) ?*IP_ADAPTER_ORDER_MAP;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn GetAdaptersAddresses(
Family: ADDRESS_FAMILY,
Flags: GET_ADAPTERS_ADDRESSES_FLAGS,
Reserved: ?*anyopaque,
// TODO: what to do with BytesParamIndex 4?
AdapterAddresses: ?*IP_ADAPTER_ADDRESSES_LH,
SizePointer: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetPerAdapterInfo(
IfIndex: u32,
// TODO: what to do with BytesParamIndex 2?
pPerAdapterInfo: ?*IP_PER_ADAPTER_INFO_W2KSP1,
pOutBufLen: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn GetInterfaceActiveTimestampCapabilities(
InterfaceLuid: ?*const NET_LUID_LH,
TimestampCapabilites: ?*INTERFACE_TIMESTAMP_CAPABILITIES,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn GetInterfaceSupportedTimestampCapabilities(
InterfaceLuid: ?*const NET_LUID_LH,
TimestampCapabilites: ?*INTERFACE_TIMESTAMP_CAPABILITIES,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn CaptureInterfaceHardwareCrossTimestamp(
InterfaceLuid: ?*const NET_LUID_LH,
CrossTimestamp: ?*INTERFACE_HARDWARE_CROSSTIMESTAMP,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn RegisterInterfaceTimestampConfigChange(
Callback: ?PINTERFACE_TIMESTAMP_CONFIG_CHANGE_CALLBACK,
CallerContext: ?*anyopaque,
NotificationHandle: ?*?HIFTIMESTAMPCHANGE,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn UnregisterInterfaceTimestampConfigChange(
NotificationHandle: ?HIFTIMESTAMPCHANGE,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn IpReleaseAddress(
AdapterInfo: ?*IP_ADAPTER_INDEX_MAP,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn IpRenewAddress(
AdapterInfo: ?*IP_ADAPTER_INDEX_MAP,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn SendARP(
DestIP: u32,
SrcIP: u32,
// TODO: what to do with BytesParamIndex 3?
pMacAddr: ?*anyopaque,
PhyAddrLen: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetRTTAndHopCount(
DestIpAddress: u32,
HopCount: ?*u32,
MaxHops: u32,
RTT: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn GetFriendlyIfIndex(
IfIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn EnableRouter(
pHandle: ?*?HANDLE,
pOverlapped: ?*OVERLAPPED,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.0'
pub extern "iphlpapi" fn UnenableRouter(
pOverlapped: ?*OVERLAPPED,
lpdwEnableCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn DisableMediaSense(
pHandle: ?*?HANDLE,
pOverLapped: ?*OVERLAPPED,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn RestoreMediaSense(
pOverlapped: ?*OVERLAPPED,
lpdwEnableCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn GetIpErrorString(
ErrorCode: u32,
Buffer: ?PWSTR,
Size: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "iphlpapi" fn ResolveNeighbor(
NetworkAddress: ?*SOCKADDR,
// TODO: what to do with BytesParamIndex 2?
PhysicalAddress: ?*anyopaque,
PhysicalAddressLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn CreatePersistentTcpPortReservation(
StartPort: u16,
NumberOfPorts: u16,
Token: ?*u64,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn CreatePersistentUdpPortReservation(
StartPort: u16,
NumberOfPorts: u16,
Token: ?*u64,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn DeletePersistentTcpPortReservation(
StartPort: u16,
NumberOfPorts: u16,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn DeletePersistentUdpPortReservation(
StartPort: u16,
NumberOfPorts: u16,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn LookupPersistentTcpPortReservation(
StartPort: u16,
NumberOfPorts: u16,
Token: ?*u64,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "iphlpapi" fn LookupPersistentUdpPortReservation(
StartPort: u16,
NumberOfPorts: u16,
Token: ?*u64,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfCreateInterface(
dwName: u32,
inAction: PFFORWARD_ACTION,
outAction: PFFORWARD_ACTION,
bUseLog: BOOL,
bMustBeUnique: BOOL,
ppInterface: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfDeleteInterface(
pInterface: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfAddFiltersToInterface(
ih: ?*anyopaque,
cInFilters: u32,
pfiltIn: ?*PF_FILTER_DESCRIPTOR,
cOutFilters: u32,
pfiltOut: ?*PF_FILTER_DESCRIPTOR,
pfHandle: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfRemoveFiltersFromInterface(
ih: ?*anyopaque,
cInFilters: u32,
pfiltIn: ?*PF_FILTER_DESCRIPTOR,
cOutFilters: u32,
pfiltOut: ?*PF_FILTER_DESCRIPTOR,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfRemoveFilterHandles(
pInterface: ?*anyopaque,
cFilters: u32,
pvHandles: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfUnBindInterface(
pInterface: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfBindInterfaceToIndex(
pInterface: ?*anyopaque,
dwIndex: u32,
pfatLinkType: PFADDRESSTYPE,
LinkIPAddress: ?*u8,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfBindInterfaceToIPAddress(
pInterface: ?*anyopaque,
pfatType: PFADDRESSTYPE,
IPAddress: ?*u8,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfRebindFilters(
pInterface: ?*anyopaque,
pLateBindInfo: ?*PF_LATEBIND_INFO,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfAddGlobalFilterToInterface(
pInterface: ?*anyopaque,
gfFilter: GLOBAL_FILTER,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfRemoveGlobalFilterFromInterface(
pInterface: ?*anyopaque,
gfFilter: GLOBAL_FILTER,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfMakeLog(
hEvent: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfSetLogBuffer(
pbBuffer: ?*u8,
dwSize: u32,
dwThreshold: u32,
dwEntries: u32,
pdwLoggedEntries: ?*u32,
pdwLostEntries: ?*u32,
pdwSizeUsed: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfDeleteLog(
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfGetInterfaceStatistics(
pInterface: ?*anyopaque,
ppfStats: ?*PF_INTERFACE_STATS,
pdwBufferSize: ?*u32,
fResetCounters: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "iphlpapi" fn PfTestPacket(
pInInterface: ?*anyopaque,
pOutInterface: ?*anyopaque,
cBytes: u32,
pbPacket: ?*u8,
ppAction: ?*PFFORWARD_ACTION,
) callconv(@import("std").os.windows.WINAPI) u32;
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (2)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
.ansi => struct {
pub const ConvertInterfaceNameToLuid = thismodule.ConvertInterfaceNameToLuidA;
pub const ConvertInterfaceLuidToName = thismodule.ConvertInterfaceLuidToNameA;
},
.wide => struct {
pub const ConvertInterfaceNameToLuid = thismodule.ConvertInterfaceNameToLuidW;
pub const ConvertInterfaceLuidToName = thismodule.ConvertInterfaceLuidToNameW;
},
.unspecified => if (@import("builtin").is_test) struct {
pub const ConvertInterfaceNameToLuid = *opaque{};
pub const ConvertInterfaceLuidToName = *opaque{};
} else struct {
pub const ConvertInterfaceNameToLuid = @compileError("'ConvertInterfaceNameToLuid' requires that UNICODE be set to true or false in the root module");
pub const ConvertInterfaceLuidToName = @compileError("'ConvertInterfaceLuidToName' requires that UNICODE be set to true or false in the root module");
},
};
//--------------------------------------------------------------------------------
// Section: Imports (33)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const ADDRESS_FAMILY = @import("../networking/win_sock.zig").ADDRESS_FAMILY;
const BOOL = @import("../foundation.zig").BOOL;
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
const CHAR = @import("../foundation.zig").CHAR;
const HANDLE = @import("../foundation.zig").HANDLE;
const IN6_ADDR = @import("../networking/win_sock.zig").IN6_ADDR;
const LARGE_INTEGER = @import("../foundation.zig").LARGE_INTEGER;
const NDIS_MEDIUM = @import("../network_management/ndis.zig").NDIS_MEDIUM;
const NDIS_PHYSICAL_MEDIUM = @import("../network_management/ndis.zig").NDIS_PHYSICAL_MEDIUM;
const NL_BANDWIDTH_INFORMATION = @import("../networking/win_sock.zig").NL_BANDWIDTH_INFORMATION;
const NL_DAD_STATE = @import("../networking/win_sock.zig").NL_DAD_STATE;
const NL_INTERFACE_OFFLOAD_ROD = @import("../networking/win_sock.zig").NL_INTERFACE_OFFLOAD_ROD;
const NL_LINK_LOCAL_ADDRESS_BEHAVIOR = @import("../networking/win_sock.zig").NL_LINK_LOCAL_ADDRESS_BEHAVIOR;
const NL_NEIGHBOR_STATE = @import("../networking/win_sock.zig").NL_NEIGHBOR_STATE;
const NL_NETWORK_CONNECTIVITY_HINT = @import("../networking/win_sock.zig").NL_NETWORK_CONNECTIVITY_HINT;
const NL_PREFIX_ORIGIN = @import("../networking/win_sock.zig").NL_PREFIX_ORIGIN;
const NL_ROUTE_ORIGIN = @import("../networking/win_sock.zig").NL_ROUTE_ORIGIN;
const NL_ROUTE_PROTOCOL = @import("../networking/win_sock.zig").NL_ROUTE_PROTOCOL;
const NL_ROUTER_DISCOVERY_BEHAVIOR = @import("../networking/win_sock.zig").NL_ROUTER_DISCOVERY_BEHAVIOR;
const NL_SUFFIX_ORIGIN = @import("../networking/win_sock.zig").NL_SUFFIX_ORIGIN;
const NTSTATUS = @import("../foundation.zig").NTSTATUS;
const OVERLAPPED = @import("../system/io.zig").OVERLAPPED;
const PIO_APC_ROUTINE = @import("../system/windows_programming.zig").PIO_APC_ROUTINE;
const PSTR = @import("../foundation.zig").PSTR;
const PWSTR = @import("../foundation.zig").PWSTR;
const SCOPE_ID = @import("../networking/win_sock.zig").SCOPE_ID;
const SOCKADDR = @import("../networking/win_sock.zig").SOCKADDR;
const SOCKADDR_IN6 = @import("../networking/win_sock.zig").SOCKADDR_IN6;
const SOCKADDR_IN6_PAIR = @import("../networking/win_sock.zig").SOCKADDR_IN6_PAIR;
const SOCKADDR_INET = @import("../networking/win_sock.zig").SOCKADDR_INET;
const SOCKET_ADDRESS = @import("../networking/win_sock.zig").SOCKET_ADDRESS;
const WIN32_ERROR = @import("../foundation.zig").WIN32_ERROR;
test {
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
if (@hasDecl(@This(), "PIPINTERFACE_CHANGE_CALLBACK")) { _ = PIPINTERFACE_CHANGE_CALLBACK; }
if (@hasDecl(@This(), "PUNICAST_IPADDRESS_CHANGE_CALLBACK")) { _ = PUNICAST_IPADDRESS_CHANGE_CALLBACK; }
if (@hasDecl(@This(), "PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK")) { _ = PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK; }
if (@hasDecl(@This(), "PIPFORWARD_CHANGE_CALLBACK")) { _ = PIPFORWARD_CHANGE_CALLBACK; }
if (@hasDecl(@This(), "PTEREDO_PORT_CHANGE_CALLBACK")) { _ = PTEREDO_PORT_CHANGE_CALLBACK; }
if (@hasDecl(@This(), "PNETWORK_CONNECTIVITY_HINT_CHANGE_CALLBACK")) { _ = PNETWORK_CONNECTIVITY_HINT_CHANGE_CALLBACK; }
if (@hasDecl(@This(), "PINTERFACE_TIMESTAMP_CONFIG_CHANGE_CALLBACK")) { _ = PINTERFACE_TIMESTAMP_CONFIG_CHANGE_CALLBACK; }
@setEvalBranchQuota(
comptime @import("std").meta.declarations(@This()).len * 3
);
// reference all the pub declarations
if (!@import("builtin").is_test) return;
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
_ = @field(@This(), decl.name);
}
}