windows: golang.zx2c4.com/wireguard/windows/tunnel/winipcfg Index | Files

package winipcfg

import "golang.zx2c4.com/wireguard/windows/tunnel/winipcfg"

Index

Package Files

interface_change_handler.go luid.go mksyscall.go netsh.go route_change_handler.go types.go types_amd64.go types_test_amd64.go unicast_address_change_handler.go winipcfg.go

Constants

const (
    IfTypeOther                         IfType = 1 // None of the below
    IfTypeRegular1822                          = 2
    IfTypeHdh1822                              = 3
    IfTypeDdnX25                               = 4
    IfTypeRfc877X25                            = 5
    IfTypeEthernetCSMACD                       = 6
    IfTypeISO88023CSMACD                       = 7
    IfTypeISO88024Tokenbus                     = 8
    IfTypeISO88025Tokenring                    = 9
    IfTypeISO88026Man                          = 10
    IfTypeStarlan                              = 11
    IfTypeProteon10Mbit                        = 12
    IfTypeProteon80Mbit                        = 13
    IfTypeHyperchannel                         = 14
    IfTypeFddi                                 = 15
    IfTypeLapB                                 = 16
    IfTypeSdlc                                 = 17
    IfTypeDs1                                  = 18 // DS1-MIB
    IfTypeE1                                   = 19 // Obsolete; see DS1-MIB
    IfTypeBasicISDN                            = 20
    IfTypePrimaryISDN                          = 21
    IfTypePropPoint2PointSerial                = 22 // proprietary serial
    IfTypePPP                                  = 23
    IfTypeSoftwareLoopback                     = 24
    IfTypeEon                                  = 25 // CLNP over IP
    IfTypeEthernet3Mbit                        = 26
    IfTypeNsip                                 = 27 // XNS over IP
    IfTypeSlip                                 = 28 // Generic Slip
    IfTypeUltra                                = 29 // ULTRA Technologies
    IfTypeDs3                                  = 30 // DS3-MIB
    IfTypeSip                                  = 31 // SMDS, coffee
    IfTypeFramerelay                           = 32 // DTE only
    IfTypeRs232                                = 33
    IfTypePara                                 = 34 // Parallel port
    IfTypeArcnet                               = 35
    IfTypeArcnetPlus                           = 36
    IfTypeAtm                                  = 37 // ATM cells
    IfTypeMioX25                               = 38
    IfTypeSonet                                = 39 // SONET or SDH
    IfTypeX25Ple                               = 40
    IfTypeIso88022LLC                          = 41
    IfTypeLocaltalk                            = 42
    IfTypeSmdsDxi                              = 43
    IfTypeFramerelayService                    = 44 // FRNETSERV-MIB
    IfTypeV35                                  = 45
    IfTypeHssi                                 = 46
    IfTypeHippi                                = 47
    IfTypeModem                                = 48 // Generic Modem
    IfTypeAal5                                 = 49 // AAL5 over ATM
    IfTypeSonetPath                            = 50
    IfTypeSonetVt                              = 51
    IfTypeSmdsIcip                             = 52 // SMDS InterCarrier Interface
    IfTypePropVirtual                          = 53 // Proprietary virtual/internal
    IfTypePropMultiplexor                      = 54 // Proprietary multiplexing
    IfTypeIEEE80212                            = 55 // 100BaseVG
    IfTypeFibrechannel                         = 56
    IfTypeHippiinterface                       = 57
    IfTypeFramerelayInterconnect               = 58 // Obsolete, use 32 or 44
    IfTypeAflane8023                           = 59 // ATM Emulated LAN for 802.3
    IfTypeAflane8025                           = 60 // ATM Emulated LAN for 802.5
    IfTypeCctemul                              = 61 // ATM Emulated circuit
    IfTypeFastether                            = 62 // Fast Ethernet (100BaseT)
    IfTypeISDN                                 = 63 // ISDN and X.25
    IfTypeV11                                  = 64 // CCITT V.11/X.21
    IfTypeV36                                  = 65 // CCITT V.36
    IfTypeG703_64k                             = 66 // CCITT G703 at 64Kbps
    IfTypeG703_2mb                             = 67 // Obsolete; see DS1-MIB
    IfTypeQllc                                 = 68 // SNA QLLC
    IfTypeFastetherFX                          = 69 // Fast Ethernet (100BaseFX)
    IfTypeChannel                              = 70
    IfTypeIEEE80211                            = 71  // Radio spread spectrum
    IfTypeIBM370parchan                        = 72  // IBM System 360/370 OEMI Channel
    IfTypeEscon                                = 73  // IBM Enterprise Systems Connection
    IfTypeDlsw                                 = 74  // Data Link Switching
    IfTypeISDNS                                = 75  // ISDN S/T interface
    IfTypeISDNU                                = 76  // ISDN U interface
    IfTypeLapD                                 = 77  // Link Access Protocol D
    IfTypeIpswitch                             = 78  // IP Switching Objects
    IfTypeRsrb                                 = 79  // Remote Source Route Bridging
    IfTypeAtmLogical                           = 80  // ATM Logical Port
    IfTypeDs0                                  = 81  // Digital Signal Level 0
    IfTypeDs0Bundle                            = 82  // Group of ds0s on the same ds1
    IfTypeBsc                                  = 83  // Bisynchronous Protocol
    IfTypeAsync                                = 84  // Asynchronous Protocol
    IfTypeCnr                                  = 85  // Combat Net Radio
    IfTypeIso88025rDtr                         = 86  // ISO 802.5r DTR
    IfTypeEplrs                                = 87  // Ext Pos Loc Report Sys
    IfTypeArap                                 = 88  // Appletalk Remote Access Protocol
    IfTypePropCnls                             = 89  // Proprietary Connectionless Proto
    IfTypeHostpad                              = 90  // CCITT-ITU X.29 PAD Protocol
    IfTypeTermpad                              = 91  // CCITT-ITU X.3 PAD Facility
    IfTypeFramerelayMpi                        = 92  // Multiproto Interconnect over FR
    IfTypeX213                                 = 93  // CCITT-ITU X213
    IfTypeAdsl                                 = 94  // Asymmetric Digital Subscrbr Loop
    IfTypeRadsl                                = 95  // Rate-Adapt Digital Subscrbr Loop
    IfTypeSdsl                                 = 96  // Symmetric Digital Subscriber Loop
    IfTypeVdsl                                 = 97  // Very H-Speed Digital Subscrb Loop
    IfTypeIso88025Crfprint                     = 98  // ISO 802.5 CRFP
    IfTypeMyrinet                              = 99  // Myricom Myrinet
    IfTypeVoiceEm                              = 100 // Voice recEive and transMit
    IfTypeVoiceFxo                             = 101 // Voice Foreign Exchange Office
    IfTypeVoiceFxs                             = 102 // Voice Foreign Exchange Station
    IfTypeVoiceEncap                           = 103 // Voice encapsulation
    IfTypeVoiceOverip                          = 104 // Voice over IP encapsulation
    IfTypeAtmDxi                               = 105 // ATM DXI
    IfTypeAtmFuni                              = 106 // ATM FUNI
    IfTypeAtmIma                               = 107 // ATM IMA
    IfTypePPPmultilinkbundle                   = 108 // PPP Multilink Bundle
    IfTypeIpoverCdlc                           = 109 // IBM ipOverCdlc
    IfTypeIpoverClaw                           = 110 // IBM Common Link Access to Workstn
    IfTypeStacktostack                         = 111 // IBM stackToStack
    IfTypeVirtualipaddress                     = 112 // IBM VIPA
    IfTypeMpc                                  = 113 // IBM multi-proto channel support
    IfTypeIpoverAtm                            = 114 // IBM ipOverAtm
    IfTypeIso88025Fiber                        = 115 // ISO 802.5j Fiber Token Ring
    IfTypeTdlc                                 = 116 // IBM twinaxial data link control
    IfTypeGigabitethernet                      = 117
    IfTypeHdlc                                 = 118
    IfTypeLapF                                 = 119
    IfTypeV37                                  = 120
    IfTypeX25Mlp                               = 121 // Multi-Link Protocol
    IfTypeX25Huntgroup                         = 122 // X.25 Hunt Group
    IfTypeTransphdlc                           = 123
    IfTypeInterleave                           = 124 // Interleave channel
    IfTypeFast                                 = 125 // Fast channel
    IfTypeIP                                   = 126 // IP (for APPN HPR in IP networks)
    IfTypeDocscableMaclayer                    = 127 // CATV Mac Layer
    IfTypeDocscableDownstream                  = 128 // CATV Downstream interface
    IfTypeDocscableUpstream                    = 129 // CATV Upstream interface
    IfTypeA12mppswitch                         = 130 // Avalon Parallel Processor
    IfTypeTunnel                               = 131 // Encapsulation interface
    IfTypeCoffee                               = 132 // Coffee pot
    IfTypeCes                                  = 133 // Circuit Emulation Service
    IfTypeAtmSubinterface                      = 134 // ATM Sub Interface
    IfTypeL2Vlan                               = 135 // Layer 2 Virtual LAN using 802.1Q
    IfTypeL3Ipvlan                             = 136 // Layer 3 Virtual LAN using IP
    IfTypeL3Ipxvlan                            = 137 // Layer 3 Virtual LAN using IPX
    IfTypeDigitalpowerline                     = 138 // IP over Power Lines
    IfTypeMediamailoverip                      = 139 // Multimedia Mail over IP
    IfTypeDtm                                  = 140 // Dynamic syncronous Transfer Mode
    IfTypeDcn                                  = 141 // Data Communications Network
    IfTypeIpforward                            = 142 // IP Forwarding Interface
    IfTypeMsdsl                                = 143 // Multi-rate Symmetric DSL
    IfTypeIEEE1394                             = 144 // IEEE1394 High Perf Serial Bus
    IfTypeIfGsn                                = 145
    IfTypeDvbrccMaclayer                       = 146
    IfTypeDvbrccDownstream                     = 147
    IfTypeDvbrccUpstream                       = 148
    IfTypeAtmVirtual                           = 149
    IfTypeMplsTunnel                           = 150
    IfTypeSrp                                  = 151
    IfTypeVoiceoveratm                         = 152
    IfTypeVoiceoverframerelay                  = 153
    IfTypeIdsl                                 = 154
    IfTypeCompositelink                        = 155
    IfTypeSs7Siglink                           = 156
    IfTypePropWirelessP2P                      = 157
    IfTypeFrForward                            = 158
    IfTypeRfc1483                              = 159
    IfTypeUsb                                  = 160
    IfTypeIEEE8023adLag                        = 161
    IfTypeBgpPolicyAccounting                  = 162
    IfTypeFrf16MfrBundle                       = 163
    IfTypeH323Gatekeeper                       = 164
    IfTypeH323Proxy                            = 165
    IfTypeMpls                                 = 166
    IfTypeMfSiglink                            = 167
    IfTypeHdsl2                                = 168
    IfTypeShdsl                                = 169
    IfTypeDs1Fdl                               = 170
    IfTypePos                                  = 171
    IfTypeDvbAsiIn                             = 172
    IfTypeDvbAsiOut                            = 173
    IfTypePlc                                  = 174
    IfTypeNfas                                 = 175
    IfTypeTr008                                = 176
    IfTypeGr303Rdt                             = 177
    IfTypeGr303Idt                             = 178
    IfTypeIsup                                 = 179
    IfTypePropDocsWirelessMaclayer             = 180
    IfTypePropDocsWirelessDownstream           = 181
    IfTypePropDocsWirelessUpstream             = 182
    IfTypeHiperlan2                            = 183
    IfTypePropBwaP2MP                          = 184
    IfTypeSonetOverheadChannel                 = 185
    IfTypeDigitalWrapperOverheadChannel        = 186
    IfTypeAal2                                 = 187
    IfTypeRadioMac                             = 188
    IfTypeAtmRadio                             = 189
    IfTypeImt                                  = 190
    IfTypeMvl                                  = 191
    IfTypeReachDsl                             = 192
    IfTypeFrDlciEndpt                          = 193
    IfTypeAtmVciEndpt                          = 194
    IfTypeOpticalChannel                       = 195
    IfTypeOpticalTransport                     = 196
    IfTypeIEEE80216Wman                        = 237
    IfTypeWwanpp                               = 243 // WWAN devices based on GSM technology
    IfTypeWwanpp2                              = 244 // WWAN devices based on CDMA technology
    IfTypeIEEE802154                           = 259 // IEEE 802.15.4 WPAN interface
    IfTypeXboxWireless                         = 281
)
const (
    TunnelTypeNone    TunnelType = 0
    TunnelTypeOther              = 1
    TunnelTypeDirect             = 2
    TunnelType6to4               = 11
    TunnelTypeIsatap             = 13
    TunnelTypeTeredo             = 14
    TunnelTypeIPHTTPS            = 15
)
const (
    ScopeLevelInterface    ScopeLevel = 1
    ScopeLevelLink                    = 2
    ScopeLevelSubnet                  = 3
    ScopeLevelAdmin                   = 4
    ScopeLevelSite                    = 5
    ScopeLevelOrganization            = 8
    ScopeLevelGlobal                  = 14
    ScopeLevelCount                   = 16
)

type AddressFamily Uses

type AddressFamily uint16

AddressFamily enumeration specifies protocol family and is one of the windows.AF_* constants.

type ChangeCallback Uses

type ChangeCallback interface {
    Unregister() error
}

type DadState Uses

type DadState uint32

DadState enumeration specifies information about the duplicate address detection (DAD) state for an IPv4 or IPv6 address. https://docs.microsoft.com/en-us/windows/desktop/api/nldef/ne-nldef-nl_dad_state

const (
    DadStateInvalid DadState = iota
    DadStateTentative
    DadStateDuplicate
    DadStateDeprecated
    DadStatePreferred
)

type GAAFlags Uses

type GAAFlags uint32

GAAFlags enumeration defines flags used in GetAdaptersAddresses calls https://docs.microsoft.com/en-us/windows/desktop/api/iphlpapi/nf-iphlpapi-getadaptersaddresses

const (
    GAAFlagSkipUnicast GAAFlags = 1 << iota
    GAAFlagSkipAnycast
    GAAFlagSkipMulticast
    GAAFlagSkipDNSServer
    GAAFlagIncludePrefix
    GAAFlagSkipFriendlyName
    GAAFlagIncludeWinsInfo
    GAAFlagIncludeGateways
    GAAFlagIncludeAllInterfaces
    GAAFlagIncludeAllCompartments
    GAAFlagIncludeTunnelBindingOrder
    GAAFlagSkipDNSInfo

    GAAFlagDefault    GAAFlags = 0
    GAAFlagSkipAll             = GAAFlagSkipUnicast | GAAFlagSkipAnycast | GAAFlagSkipMulticast | GAAFlagSkipDNSServer | GAAFlagSkipFriendlyName | GAAFlagSkipDNSInfo
    GAAFlagIncludeAll          = GAAFlagIncludePrefix | GAAFlagIncludeWinsInfo | GAAFlagIncludeGateways | GAAFlagIncludeAllInterfaces | GAAFlagIncludeAllCompartments | GAAFlagIncludeTunnelBindingOrder
)

type IPAAFlags Uses

type IPAAFlags uint32

IPAAFlags enumeration describes adapter addresses flags https://docs.microsoft.com/en-us/windows/desktop/api/iptypes/ns-iptypes-_ip_adapter_addresses_lh

const (
    IPAAFlagDdnsEnabled IPAAFlags = 1 << iota
    IPAAFlagRegisterAdapterSuffix
    IPAAFlagDhcpv4Enabled
    IPAAFlagReceiveOnly
    IPAAFlagNoMulticast
    IPAAFlagIpv6OtherStatefulConfig
    IPAAFlagNetbiosOverTcpipEnabled
    IPAAFlagIpv4Enabled
    IPAAFlagIpv6Enabled
    IPAAFlagIpv6ManagedAddressConfigurationSupported
)

type IPAdapterAddresses Uses

type IPAdapterAddresses struct {
    Length  uint32
    IfIndex uint32
    Next    *IPAdapterAddresses

    FirstUnicastAddress   *windows.IpAdapterUnicastAddress
    FirstAnycastAddress   *windows.IpAdapterAnycastAddress
    FirstMulticastAddress *windows.IpAdapterMulticastAddress
    FirstDNSServerAddress *windows.IpAdapterDnsServerAdapter

    Flags                  IPAAFlags
    MTU                    uint32
    IfType                 IfType
    OperStatus             IfOperStatus
    IPv6IfIndex            uint32
    ZoneIndices            [16]uint32
    FirstPrefix            *windows.IpAdapterPrefix
    TransmitLinkSpeed      uint64
    ReceiveLinkSpeed       uint64
    FirstWINSServerAddress *IPAdapterWINSServerAddress
    FirstGatewayAddress    *IPAdapterGatewayAddress
    Ipv4Metric             uint32
    Ipv6Metric             uint32
    LUID                   LUID
    DHCPv4Server           windows.SocketAddress
    CompartmentID          uint32
    NetworkGUID            windows.GUID
    ConnectionType         NetIfConnectionType
    TunnelType             TunnelType
    DHCPv6Server           windows.SocketAddress

    DHCPv6IAID     uint32
    FirstDNSSuffix *IPAdapterDNSSuffix
    // contains filtered or unexported fields
}

IPAdapterAddresses structure is the header node for a linked list of addresses for a particular adapter. This structure can simultaneously be used as part of a linked list of IP_ADAPTER_ADDRESSES structures. https://docs.microsoft.com/en-us/windows/desktop/api/iptypes/ns-iptypes-_ip_adapter_addresses_lh This is a modified and extended version of windows.IpAdapterAddresses.

func GetAdaptersAddresses Uses

func GetAdaptersAddresses(family AddressFamily, flags GAAFlags) ([]*IPAdapterAddresses, error)

GetAdaptersAddresses function retrieves the addresses associated with the adapters on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/iphlpapi/nf-iphlpapi-getadaptersaddresses

func (*IPAdapterAddresses) AdapterName Uses

func (addr *IPAdapterAddresses) AdapterName() string

AdapterName method returns the name of the adapter with which these addresses are associated. Unlike an adapter's friendly name, the adapter name returned by AdapterName is permanent and cannot be modified by the user.

func (*IPAdapterAddresses) DHCPv6ClientDUID Uses

func (addr *IPAdapterAddresses) DHCPv6ClientDUID() []byte

DHCPv6ClientDUID method returns the DHCP unique identifier (DUID) for the DHCPv6 client. This information is only applicable to an IPv6 adapter address configured using DHCPv6.

func (*IPAdapterAddresses) DNSSuffix Uses

func (addr *IPAdapterAddresses) DNSSuffix() string

DNSSuffix method returns adapter DNS suffix associated with this adapter.

func (*IPAdapterAddresses) Description Uses

func (addr *IPAdapterAddresses) Description() string

Description method returns description for the adapter.

func (*IPAdapterAddresses) FriendlyName Uses

func (addr *IPAdapterAddresses) FriendlyName() string

FriendlyName method returns a user-friendly name for the adapter. For example: "Local Area Connection 1." This name appears in contexts such as the ipconfig command line program and the Connection folder.

func (*IPAdapterAddresses) PhysicalAddress Uses

func (addr *IPAdapterAddresses) PhysicalAddress() []byte

PhysicalAddress method returns the Media Access Control (MAC) address for the adapter. For example, on an Ethernet network this member would specify the Ethernet hardware address.

type IPAdapterDNSSuffix Uses

type IPAdapterDNSSuffix struct {
    Next *IPAdapterDNSSuffix
    // contains filtered or unexported fields
}

IPAdapterDNSSuffix structure stores a DNS suffix in a linked list of DNS suffixes for a particular adapter. https://docs.microsoft.com/en-us/windows/desktop/api/iptypes/ns-iptypes-_ip_adapter_dns_suffix

func (*IPAdapterDNSSuffix) String Uses

func (obj *IPAdapterDNSSuffix) String() string

String method returns the DNS suffix for this DNS suffix entry.

type IPAdapterGatewayAddress Uses

type IPAdapterGatewayAddress struct {
    Length uint32

    Next    *IPAdapterGatewayAddress
    Address windows.SocketAddress
    // contains filtered or unexported fields
}

IPAdapterGatewayAddress structure stores a single gateway address in a linked list of gateway addresses for a particular adapter. https://docs.microsoft.com/en-us/windows/desktop/api/iptypes/ns-iptypes-_ip_adapter_gateway_address_lh

type IPAdapterWINSServerAddress Uses

type IPAdapterWINSServerAddress struct {
    Length uint32

    Next    *IPAdapterWINSServerAddress
    Address windows.SocketAddress
    // contains filtered or unexported fields
}

IPAdapterWINSServerAddress structure stores a single Windows Internet Name Service (WINS) server address in a linked list of WINS server addresses for a particular adapter. https://docs.microsoft.com/en-us/windows/desktop/api/iptypes/ns-iptypes-_ip_adapter_wins_server_address_lh

type IPAddressPrefix Uses

type IPAddressPrefix struct {
    Prefix       RawSockaddrInet
    PrefixLength uint8
    // contains filtered or unexported fields
}

IPAddressPrefix structure stores an IP address prefix. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/ns-netioapi-_ip_address_prefix

func (*IPAddressPrefix) IPNet Uses

func (prefix *IPAddressPrefix) IPNet() net.IPNet

IPNet method returns IP address prefix as net.IPNet. If the address is neither IPv4 not IPv6 an empty net.IPNet is returned. The resulting net.IPNet should be checked appropriately.

func (*IPAddressPrefix) SetIPNet Uses

func (prefix *IPAddressPrefix) SetIPNet(net net.IPNet) error

SetIPNet method sets IP address prefix using net.IPNet.

type IfOperStatus Uses

type IfOperStatus uint32

IfOperStatus enumeration specifies the operational status of an interface. https://docs.microsoft.com/en-us/windows/desktop/api/ifdef/ne-ifdef-if_oper_status

const (
    IfOperStatusUp IfOperStatus = iota + 1
    IfOperStatusDown
    IfOperStatusTesting
    IfOperStatusUnknown
    IfOperStatusDormant
    IfOperStatusNotPresent
    IfOperStatusLowerLayerDown
)

type IfType Uses

type IfType uint32

IfType enumeration specifies interface type.

type InterfaceAndOperStatusFlags Uses

type InterfaceAndOperStatusFlags uint8

InterfaceAndOperStatusFlags enumeration type defines interface and operation flags https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/ns-netioapi-_mib_if_row2

const (
    IAOSFHardwareInterface InterfaceAndOperStatusFlags = 1 << iota
    IAOSFFilterInterface
    IAOSFConnectorPresent
    IAOSFNotAuthenticated
    IAOSFNotMediaConnected
    IAOSFPaused
    IAOSFLowPower
    IAOSFEndPointInterface
)

type InterfaceChangeCallback Uses

type InterfaceChangeCallback struct {
    // contains filtered or unexported fields
}

InterfaceChangeCallback structure allows interface change callback handling.

func RegisterInterfaceChangeCallback Uses

func RegisterInterfaceChangeCallback(callback func(notificationType MibNotificationType, iface *MibIPInterfaceRow)) (*InterfaceChangeCallback, error)

RegisterInterfaceChangeCallback registers a new InterfaceChangeCallback. If this particular callback is already registered, the function will silently return. Returned InterfaceChangeCallback.Unregister method should be used to unregister.

func (*InterfaceChangeCallback) Unregister Uses

func (callback *InterfaceChangeCallback) Unregister() error

Unregister unregisters the callback.

type LUID Uses

type LUID uint64

LUID represents a network interface.

func LUIDFromGUID Uses

func LUIDFromGUID(guid *windows.GUID) (LUID, error)

LUIDFromGUID function converts a globally unique identifier (GUID) for a network interface to the locally unique identifier (LUID) for the interface. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-convertinterfaceguidtoluid

func (LUID) AddDNS Uses

func (luid LUID) AddDNS(dnses []net.IP) error

AddDNS method associates additional DNS servers with the adapter.

func (LUID) AddIPAddress Uses

func (luid LUID) AddIPAddress(address net.IPNet) error

AddIPAddress method adds new unicast IP address to the interface. Corresponds to CreateUnicastIpAddressEntry function (https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-createunicastipaddressentry).

func (LUID) AddIPAddresses Uses

func (luid LUID) AddIPAddresses(addresses []net.IPNet) error

AddIPAddresses method adds multiple new unicast IP addresses to the interface. Corresponds to CreateUnicastIpAddressEntry function (https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-createunicastipaddressentry).

func (LUID) AddRoute Uses

func (luid LUID) AddRoute(destination net.IPNet, nextHop net.IP, metric uint32) error

AddRoute method adds a route to the interface. Corresponds to CreateIpForwardEntry2 function, with added splitDefault feature. (https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-createipforwardentry2)

func (LUID) AddRoutes Uses

func (luid LUID) AddRoutes(routesData []*RouteData) error

AddRoutes method adds multiple routes to the interface.

func (LUID) DNS Uses

func (luid LUID) DNS() ([]net.IP, error)

DNS method returns all DNS server addresses associated with the adapter.

func (LUID) DeleteIPAddress Uses

func (luid LUID) DeleteIPAddress(address net.IPNet) error

DeleteIPAddress method deletes interface's unicast IP address. Corresponds to DeleteUnicastIpAddressEntry function (https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-deleteunicastipaddressentry).

func (LUID) DeleteRoute Uses

func (luid LUID) DeleteRoute(destination net.IPNet, nextHop net.IP) error

DeleteRoute method deletes a route that matches the criteria. Corresponds to DeleteIpForwardEntry2 function (https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-deleteipforwardentry2).

func (LUID) FlushDNS Uses

func (luid LUID) FlushDNS() error

FlushDNS method clears all DNS servers associated with the adapter.

func (LUID) FlushIPAddresses Uses

func (luid LUID) FlushIPAddresses(family AddressFamily) error

FlushIPAddresses method deletes all interface's unicast IP addresses.

func (LUID) FlushRoutes Uses

func (luid LUID) FlushRoutes(family AddressFamily) error

FlushRoutes method deletes all interface's routes. It continues on failures, and returns the last error afterwards.

func (LUID) GUID Uses

func (luid LUID) GUID() (*windows.GUID, error)

GUID method converts a locally unique identifier (LUID) for a network interface to a globally unique identifier (GUID) for the interface. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-convertinterfaceluidtoguid

func (LUID) IPAddress Uses

func (luid LUID) IPAddress(ip net.IP) (*MibUnicastIPAddressRow, error)

IPAddress method returns MibUnicastIPAddressRow struct that matches to provided 'ip' argument. Corresponds to GetUnicastIpAddressEntry (https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-getunicastipaddressentry)

func (LUID) IPInterface Uses

func (luid LUID) IPInterface(family AddressFamily) (*MibIPInterfaceRow, error)

IPInterface method retrieves IP information for the specified interface on the local computer.

func (LUID) Interface Uses

func (luid LUID) Interface() (*MibIfRow2, error)

Interface method retrieves information for the specified adapter on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-getifentry2

func (LUID) Route Uses

func (luid LUID) Route(destination net.IPNet, nextHop net.IP) (*MibIPforwardRow2, error)

Route method returns route determined with the input arguments. Corresponds to GetIpForwardEntry2 function (https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-getipforwardentry2). NOTE: If the corresponding route isn't found, the method will return error.

func (LUID) SetDNS Uses

func (luid LUID) SetDNS(dnses []net.IP) error

SetDNS method clears previous and associates new DNS servers with the adapter.

func (LUID) SetDNSDomain Uses

func (luid LUID) SetDNSDomain(domain string) error

SetDNSDomain method sets the interface-specific DNS domain.

func (LUID) SetDNSForFamily Uses

func (luid LUID) SetDNSForFamily(family AddressFamily, dnses []net.IP) error

SetDNSForFamily method clears previous and associates new DNS servers with the adapter for a specific family.

func (LUID) SetIPAddresses Uses

func (luid LUID) SetIPAddresses(addresses []net.IPNet) error

SetIPAddresses method sets new unicast IP addresses to the interface.

func (LUID) SetIPAddressesForFamily Uses

func (luid LUID) SetIPAddressesForFamily(family AddressFamily, addresses []net.IPNet) error

SetIPAddressesForFamily method sets new unicast IP addresses for a specific family to the interface.

func (LUID) SetRoutes Uses

func (luid LUID) SetRoutes(routesData []*RouteData) error

SetRoutes method sets (flush than add) multiple routes to the interface.

func (LUID) SetRoutesForFamily Uses

func (luid LUID) SetRoutesForFamily(family AddressFamily, routesData []*RouteData) error

SetRoutesForFamily method sets (flush than add) multiple routes for a specific family to the interface.

type LinkLocalAddressBehavior Uses

type LinkLocalAddressBehavior int32

LinkLocalAddressBehavior enumeration type defines the link local address behavior. https://docs.microsoft.com/en-us/windows/desktop/api/nldef/ne-nldef-_nl_link_local_address_behavior

const (
    LinkLocalAddressAlwaysOff LinkLocalAddressBehavior = iota // Never use link locals.
    LinkLocalAddressDelayed                                   // Use link locals only if no other addresses. (default for IPv4). Legacy mapping: IPAutoconfigurationEnabled.
    LinkLocalAddressAlwaysOn                                  // Always use link locals (default for IPv6).
    LinkLocalAddressUnchanged = -1
)

type MibAnycastIPAddressRow Uses

type MibAnycastIPAddressRow struct {
    Address        RawSockaddrInet
    InterfaceLUID  LUID
    InterfaceIndex uint32
    ScopeID        uint32
}

MibAnycastIPAddressRow structure stores information about an anycast IP address. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/ns-netioapi-_mib_anycastipaddress_row

func GetAnycastIPAddressTable Uses

func GetAnycastIPAddressTable(family AddressFamily) ([]MibAnycastIPAddressRow, error)

GetAnycastIPAddressTable function retrieves the anycast IP address table on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-getanycastipaddresstable

func (*MibAnycastIPAddressRow) Create Uses

func (row *MibAnycastIPAddressRow) Create() error

Create method adds a new anycast IP address entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-createanycastipaddressentry

func (*MibAnycastIPAddressRow) Delete Uses

func (row *MibAnycastIPAddressRow) Delete() error

Delete method deletes an existing anycast IP address entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-deleteanycastipaddressentry

type MibIPInterfaceRow Uses

type MibIPInterfaceRow struct {
    Family                               AddressFamily
    InterfaceLUID                        LUID
    InterfaceIndex                       uint32
    MaxReassemblySize                    uint32
    InterfaceIdentifier                  uint64
    MinRouterAdvertisementInterval       uint32
    MaxRouterAdvertisementInterval       uint32
    AdvertisingEnabled                   bool
    ForwardingEnabled                    bool
    WeakHostSend                         bool
    WeakHostReceive                      bool
    UseAutomaticMetric                   bool
    UseNeighborUnreachabilityDetection   bool
    ManagedAddressConfigurationSupported bool
    OtherStatefulConfigurationSupported  bool
    AdvertiseDefaultRoute                bool
    RouterDiscoveryBehavior              RouterDiscoveryBehavior
    DadTransmits                         uint32
    BaseReachableTime                    uint32
    RetransmitTime                       uint32
    PathMTUDiscoveryTimeout              uint32
    LinkLocalAddressBehavior             LinkLocalAddressBehavior
    LinkLocalAddressTimeout              uint32
    ZoneIndices                          [ScopeLevelCount]uint32
    SitePrefixLength                     uint32
    Metric                               uint32
    NLMTU                                uint32
    Connected                            bool
    SupportsWakeUpPatterns               bool
    SupportsNeighborDiscovery            bool
    SupportsRouterDiscovery              bool
    ReachableTime                        uint32
    TransmitOffload                      OffloadRod
    ReceiveOffload                       OffloadRod
    DisableDefaultRoutes                 bool
}

MibIPInterfaceRow structure stores interface management information for a particular IP address family on a network interface. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/ns-netioapi-_mib_ipinterface_row

func GetIPInterfaceTable Uses

func GetIPInterfaceTable(family AddressFamily) ([]MibIPInterfaceRow, error)

GetIPInterfaceTable function retrieves the IP interface entries on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-getipinterfacetable

func (*MibIPInterfaceRow) Init Uses

func (row *MibIPInterfaceRow) Init()

Init method initializes the members of an MIB_IPINTERFACE_ROW entry with default values. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-initializeipinterfaceentry

func (*MibIPInterfaceRow) Set Uses

func (row *MibIPInterfaceRow) Set() error

Set method sets the properties of an IP interface on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-setipinterfaceentry

type MibIPforwardRow2 Uses

type MibIPforwardRow2 struct {
    InterfaceLUID        LUID
    InterfaceIndex       uint32
    DestinationPrefix    IPAddressPrefix
    NextHop              RawSockaddrInet
    SitePrefixLength     uint8
    ValidLifetime        uint32
    PreferredLifetime    uint32
    Metric               uint32
    Protocol             RouteProtocol
    Loopback             bool
    AutoconfigureAddress bool
    Publish              bool
    Immortal             bool
    Age                  uint32
    Origin               RouteOrigin
}

MibIPforwardRow2 structure stores information about an IP route entry. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/ns-netioapi-_mib_ipforward_row2

func GetIPForwardTable2 Uses

func GetIPForwardTable2(family AddressFamily) ([]MibIPforwardRow2, error)

GetIPForwardTable2 function retrieves the IP route entries on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-getipforwardtable2

func (*MibIPforwardRow2) Create Uses

func (row *MibIPforwardRow2) Create() error

Create method creates a new IP route entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-createipforwardentry2

func (*MibIPforwardRow2) Delete Uses

func (row *MibIPforwardRow2) Delete() error

Delete method deletes an IP route entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-deleteipforwardentry2

func (*MibIPforwardRow2) Init Uses

func (row *MibIPforwardRow2) Init()

Init method initializes a MIB_IPFORWARD_ROW2 structure with default values for an IP route entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-initializeipforwardentry

func (*MibIPforwardRow2) Set Uses

func (row *MibIPforwardRow2) Set() error

Set method sets the properties of an IP route entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-setipforwardentry2

type MibIfEntryLevel Uses

type MibIfEntryLevel uint32

MibIfEntryLevel enumeration specifies level of interface information to retrieve in GetIfTable2Ex function call. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-getifentry2ex

const (
    MibIfEntryNormal                  MibIfEntryLevel = 0
    MibIfEntryNormalWithoutStatistics                 = 2
)

type MibIfRow2 Uses

type MibIfRow2 struct {
    InterfaceLUID  LUID
    InterfaceIndex uint32
    InterfaceGUID  windows.GUID

    MTU                         uint32
    Type                        IfType
    TunnelType                  TunnelType
    MediaType                   NdisMedium
    PhysicalMediumType          NdisPhysicalMedium
    AccessType                  NetIfAccessType
    DirectionType               NetIfDirectionType
    InterfaceAndOperStatusFlags InterfaceAndOperStatusFlags
    OperStatus                  IfOperStatus
    AdminStatus                 NetIfAdminStatus
    MediaConnectState           NetIfMediaConnectState
    NetworkGUID                 windows.GUID
    ConnectionType              NetIfConnectionType
    TransmitLinkSpeed           uint64
    ReceiveLinkSpeed            uint64
    InOctets                    uint64
    InUcastPkts                 uint64
    InNUcastPkts                uint64
    InDiscards                  uint64
    InErrors                    uint64
    InUnknownProtos             uint64
    InUcastOctets               uint64
    InMulticastOctets           uint64
    InBroadcastOctets           uint64
    OutOctets                   uint64
    OutUcastPkts                uint64
    OutNUcastPkts               uint64
    OutDiscards                 uint64
    OutErrors                   uint64
    OutUcastOctets              uint64
    OutMulticastOctets          uint64
    OutBroadcastOctets          uint64
    OutQLen                     uint64
    // contains filtered or unexported fields
}

MibIfRow2 structure stores information about a particular interface. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/ns-netioapi-_mib_if_row2

func GetIfTable2Ex Uses

func GetIfTable2Ex(level MibIfEntryLevel) ([]MibIfRow2, error)

GetIfTable2Ex function retrieves the MIB-II interface table. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-getiftable2ex

func (*MibIfRow2) Alias Uses

func (row *MibIfRow2) Alias() string

Alias method returns a string that contains the alias name of the network interface.

func (*MibIfRow2) Description Uses

func (row *MibIfRow2) Description() string

Description method returns a string that contains a description of the network interface.

func (*MibIfRow2) PermanentPhysicalAddress Uses

func (row *MibIfRow2) PermanentPhysicalAddress() []byte

PermanentPhysicalAddress method returns the permanent physical hardware address of the adapter for this network interface.

func (*MibIfRow2) PhysicalAddress Uses

func (row *MibIfRow2) PhysicalAddress() []byte

PhysicalAddress method returns the physical hardware address of the adapter for this network interface.

type MibNotificationType Uses

type MibNotificationType uint32

MibNotificationType enumeration defines the notification type passed to a callback function when a notification occurs. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/ne-netioapi-_mib_notification_type

const (
    MibParameterNotification MibNotificationType = iota // Parameter change
    MibAddInstance                                      // Addition
    MibDeleteInstance                                   // Deletion
    MibInitialNotification                              // Initial notification
)

type MibUnicastIPAddressRow Uses

type MibUnicastIPAddressRow struct {
    Address            RawSockaddrInet
    InterfaceLUID      LUID
    InterfaceIndex     uint32
    PrefixOrigin       PrefixOrigin
    SuffixOrigin       SuffixOrigin
    ValidLifetime      uint32
    PreferredLifetime  uint32
    OnLinkPrefixLength uint8
    SkipAsSource       bool
    DadState           DadState
    ScopeID            uint32
    CreationTimeStamp  int64
}

MibUnicastIPAddressRow structure stores information about a unicast IP address. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/ns-netioapi-_mib_unicastipaddress_row

func GetUnicastIPAddressTable Uses

func GetUnicastIPAddressTable(family AddressFamily) ([]MibUnicastIPAddressRow, error)

GetUnicastIPAddressTable function retrieves the unicast IP address table on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-getunicastipaddresstable

func (*MibUnicastIPAddressRow) Create Uses

func (row *MibUnicastIPAddressRow) Create() error

Create method adds a new unicast IP address entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-createunicastipaddressentry

func (*MibUnicastIPAddressRow) Delete Uses

func (row *MibUnicastIPAddressRow) Delete() error

Delete method deletes an existing unicast IP address entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-deleteunicastipaddressentry

func (*MibUnicastIPAddressRow) Init Uses

func (row *MibUnicastIPAddressRow) Init()

Init method initializes a MibUnicastIPAddressRow structure with default values for a unicast IP address entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-initializeunicastipaddressentry

func (*MibUnicastIPAddressRow) Set Uses

func (row *MibUnicastIPAddressRow) Set() error

Set method sets the properties of an existing unicast IP address entry on the local computer. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/nf-netioapi-setunicastipaddressentry

type NdisMedium Uses

type NdisMedium uint32

NdisMedium enumeration type identifies the medium types that NDIS drivers support. https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/ntddndis/ne-ntddndis-_ndis_medium

const (
    NdisMedium802_3 NdisMedium = iota
    NdisMedium802_5
    NdisMediumFddi
    NdisMediumWan
    NdisMediumLocalTalk
    NdisMediumDix // defined for convenience, not a real medium
    NdisMediumArcnetRaw
    NdisMediumArcnet878_2
    NdisMediumAtm
    NdisMediumWirelessWan
    NdisMediumIrda
    NdisMediumBpc
    NdisMediumCoWan
    NdisMedium1394
    NdisMediumInfiniBand
    NdisMediumTunnel
    NdisMediumNative802_11
    NdisMediumLoopback
    NdisMediumWiMAX
    NdisMediumIP
    NdisMediumMax
)

type NdisPhysicalMedium Uses

type NdisPhysicalMedium uint32

NdisPhysicalMedium describes NDIS physical medium type. https://docs.microsoft.com/en-us/windows/desktop/api/netioapi/ns-netioapi-_mib_if_row2

const (
    NdisPhysicalMediumUnspecified NdisPhysicalMedium = iota
    NdisPhysicalMediumWirelessLan
    NdisPhysicalMediumCableModem
    NdisPhysicalMediumPhoneLine
    NdisPhysicalMediumPowerLine
    NdisPhysicalMediumDSL // includes ADSL and UADSL (G.Lite)
    NdisPhysicalMediumFibreChannel
    NdisPhysicalMedium1394
    NdisPhysicalMediumWirelessWan
    NdisPhysicalMediumNative802_11
    NdisPhysicalMediumBluetooth
    NdisPhysicalMediumInfiniband
    NdisPhysicalMediumWiMax
    NdisPhysicalMediumUWB
    NdisPhysicalMedium802_3
    NdisPhysicalMedium802_5
    NdisPhysicalMediumIrda
    NdisPhysicalMediumWiredWAN
    NdisPhysicalMediumWiredCoWan
    NdisPhysicalMediumOther
    NdisPhysicalMediumNative802_15_4
    NdisPhysicalMediumMax
)

type NetIfAccessType Uses

type NetIfAccessType uint32

NetIfAccessType enumeration type specifies the NDIS network interface access type. https://docs.microsoft.com/en-us/windows/desktop/api/ifdef/ne-ifdef-_net_if_access_type

const (
    NetIfAccessLoopback NetIfAccessType = iota + 1
    NetIfAccessBroadcast
    NetIfAccessPointToPoint
    NetIfAccessPointToMultiPoint
    NetIfAccessMax
)

type NetIfAdminStatus Uses

type NetIfAdminStatus uint32

NetIfAdminStatus enumeration type specifies the NDIS network interface administrative status, as described in RFC 2863. https://docs.microsoft.com/en-us/windows/desktop/api/ifdef/ne-ifdef-net_if_admin_status

const (
    NetIfAdminStatusUp NetIfAdminStatus = iota + 1
    NetIfAdminStatusDown
    NetIfAdminStatusTesting
)

type NetIfConnectionType Uses

type NetIfConnectionType uint32

NetIfConnectionType enumeration type specifies the NDIS network interface connection type. https://docs.microsoft.com/en-us/windows/desktop/api/ifdef/ne-ifdef-_net_if_connection_type

const (
    NetIfConnectionDedicated NetIfConnectionType = iota + 1
    NetIfConnectionPassive
    NetIfConnectionDemand
    NetIfConnectionMaximum
)

type NetIfDirectionType Uses

type NetIfDirectionType uint32

NetIfDirectionType enumeration type specifies the NDIS network interface direction type. https://docs.microsoft.com/en-us/windows/desktop/api/ifdef/ne-ifdef-net_if_direction_type

const (
    NetIfDirectionSendReceive NetIfDirectionType = iota
    NetIfDirectionSendOnly
    NetIfDirectionReceiveOnly
    NetIfDirectionMaximum
)

type NetIfMediaConnectState Uses

type NetIfMediaConnectState uint32

NetIfMediaConnectState enumeration type specifies the NDIS network interface connection state. https://docs.microsoft.com/en-us/windows/desktop/api/ifdef/ne-ifdef-_net_if_media_connect_state

const (
    MediaConnectStateUnknown NetIfMediaConnectState = iota
    MediaConnectStateConnected
    MediaConnectStateDisconnected
)

type OffloadRod Uses

type OffloadRod uint8

OffloadRod enumeration specifies a set of flags that indicate the offload capabilities for an IP interface. https://docs.microsoft.com/en-us/windows/desktop/api/nldef/ns-nldef-_nl_interface_offload_rod

const (
    ChecksumSupported OffloadRod = 1 << iota
    OptionsSupported
    DatagramChecksumSupported
    StreamChecksumSupported
    StreamOptionsSupported
    FastPathCompatible
    LargeSendOffloadSupported
    GiantSendOffloadSupported
)

type PrefixOrigin Uses

type PrefixOrigin uint32

PrefixOrigin enumeration specifies the origin of an IPv4 or IPv6 address prefix, and is used with the IP_ADAPTER_UNICAST_ADDRESS structure. https://docs.microsoft.com/en-us/windows/desktop/api/nldef/ne-nldef-nl_prefix_origin

const (
    PrefixOriginOther PrefixOrigin = iota
    PrefixOriginManual
    PrefixOriginWellKnown
    PrefixOriginDHCP
    PrefixOriginRouterAdvertisement
    PrefixOriginUnchanged = 1 << 4
)

type RawSockaddrInet Uses

type RawSockaddrInet struct {
    Family AddressFamily
    // contains filtered or unexported fields
}

RawSockaddrInet union contains an IPv4, an IPv6 address, or an address family. https://docs.microsoft.com/en-us/windows/desktop/api/ws2ipdef/ns-ws2ipdef-_sockaddr_inet

func (*RawSockaddrInet) IP Uses

func (addr *RawSockaddrInet) IP() net.IP

IP method returns IPv4 or IPv6 address. If the address is neither IPv4 not IPv6 nil is returned.

func (*RawSockaddrInet) SetIP Uses

func (addr *RawSockaddrInet) SetIP(ip net.IP, port uint16) error

SetIP method sets family, address, and port to the given IPv4 or IPv6 address and port. All other members of the structure are set to zero.

type RouteChangeCallback Uses

type RouteChangeCallback struct {
    // contains filtered or unexported fields
}

RouteChangeCallback structure allows route change callback handling.

func RegisterRouteChangeCallback Uses

func RegisterRouteChangeCallback(callback func(notificationType MibNotificationType, route *MibIPforwardRow2)) (*RouteChangeCallback, error)

RegisterRouteChangeCallback registers a new RouteChangeCallback. If this particular callback is already registered, the function will silently return. Returned RouteChangeCallback.Unregister method should be used to unregister.

func (*RouteChangeCallback) Unregister Uses

func (callback *RouteChangeCallback) Unregister() error

Unregister unregisters the callback.

type RouteData Uses

type RouteData struct {
    Destination net.IPNet
    NextHop     net.IP
    Metric      uint32
}

RouteData structure describes a route to add

type RouteOrigin Uses

type RouteOrigin uint32

RouteOrigin enumeration type defines the origin of the IP route. https://docs.microsoft.com/en-us/windows/desktop/api/nldef/ne-nldef-nl_route_origin

const (
    RouteOriginManual RouteOrigin = iota
    RouteOriginWellKnown
    RouteOriginDHCP
    RouteOriginRouterAdvertisement
    RouteOrigin6to4
)

type RouteProtocol Uses

type RouteProtocol uint32

RouteProtocol enumeration type defines the routing mechanism that an IP route was added with, as described in RFC 4292. https://docs.microsoft.com/en-us/windows/desktop/api/nldef/ne-nldef-nl_route_protocol

const (
    RouteProtocolOther RouteProtocol = iota + 1
    RouteProtocolLocal
    RouteProtocolNetMgmt
    RouteProtocolIcmp
    RouteProtocolEgp
    RouteProtocolGgp
    RouteProtocolHello
    RouteProtocolRip
    RouteProtocolIsIs
    RouteProtocolEsIs
    RouteProtocolCisco
    RouteProtocolBbn
    RouteProtocolOspf
    RouteProtocolBgp
    RouteProtocolIdpr
    RouteProtocolEigrp
    RouteProtocolDvmrp
    RouteProtocolRpl
    RouteProtocolDHCP
    RouteProtocolNTAutostatic   = 10002
    RouteProtocolNTStatic       = 10006
    RouteProtocolNTStaticNonDOD = 10007
)

type RouterDiscoveryBehavior Uses

type RouterDiscoveryBehavior int32

RouterDiscoveryBehavior enumeration type defines the router discovery behavior, as described in RFC 2461. https://docs.microsoft.com/en-us/windows/desktop/api/nldef/ne-nldef-_nl_router_discovery_behavior

const (
    RouterDiscoveryDisabled RouterDiscoveryBehavior = iota
    RouterDiscoveryEnabled
    RouterDiscoveryDHCP
    RouterDiscoveryUnchanged = -1
)

type ScopeLevel Uses

type ScopeLevel uint32

ScopeLevel enumeration is used with the IP_ADAPTER_ADDRESSES structure to identify scope levels for IPv6 addresses. https://docs.microsoft.com/en-us/windows/desktop/api/ws2def/ne-ws2def-scope_level

type SuffixOrigin Uses

type SuffixOrigin uint32

SuffixOrigin enumeration specifies the origin of an IPv4 or IPv6 address suffix, and is used with the IP_ADAPTER_UNICAST_ADDRESS structure. https://docs.microsoft.com/en-us/windows/desktop/api/nldef/ne-nldef-nl_suffix_origin

const (
    SuffixOriginOther SuffixOrigin = iota
    SuffixOriginManual
    SuffixOriginWellKnown
    SuffixOriginDHCP
    SuffixOriginLinkLayerAddress
    SuffixOriginRandom
    SuffixOriginUnchanged = 1 << 4
)

type TunnelType Uses

type TunnelType uint32

TunnelType enumeration type defines the encapsulation method used by a tunnel, as described by the Internet Assigned Names Authority (IANA). https://docs.microsoft.com/en-us/windows/desktop/api/ifdef/ne-ifdef-tunnel_type

type UnicastAddressChangeCallback Uses

type UnicastAddressChangeCallback struct {
    // contains filtered or unexported fields
}

UnicastAddressChangeCallback structure allows unicast address change callback handling.

func RegisterUnicastAddressChangeCallback Uses

func RegisterUnicastAddressChangeCallback(callback func(notificationType MibNotificationType, unicastAddress *MibUnicastIPAddressRow)) (*UnicastAddressChangeCallback, error)

RegisterUnicastAddressChangeCallback registers a new UnicastAddressChangeCallback. If this particular callback is already registered, the function will silently return. Returned UnicastAddressChangeCallback.Unregister method should be used to unregister.

func (*UnicastAddressChangeCallback) Unregister Uses

func (callback *UnicastAddressChangeCallback) Unregister() error

Unregister unregisters the callback.

Package winipcfg imports 12 packages (graph) and is imported by 2 packages. Updated 2020-07-30. Refresh now. Tools for package owners.