From 8c03b845c014f81c028a199a55d4cfca7816d9dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Sat, 11 Mar 2017 15:05:08 +0100 Subject: [PATCH] iphlpapi: Flesh out NotifyIpInterfaceChange arguments. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: André Hentschel Signed-off-by: Bruno Jesus Signed-off-by: Alexandre Julliard --- dlls/iphlpapi/iphlpapi_main.c | 4 ++-- include/netioapi.h | 41 +++++++++++++++++++++++++++++++++++ include/nldef.h | 26 ++++++++++++++++++++++ include/ws2def.h | 3 ++- 4 files changed, 71 insertions(+), 3 deletions(-) diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c index 51d05ed6148..953af886db8 100644 --- a/dlls/iphlpapi/iphlpapi_main.c +++ b/dlls/iphlpapi/iphlpapi_main.c @@ -2640,8 +2640,8 @@ DWORD WINAPI NotifyAddrChange(PHANDLE Handle, LPOVERLAPPED overlapped) /****************************************************************** * NotifyIpInterfaceChange (IPHLPAPI.@) */ -DWORD WINAPI NotifyIpInterfaceChange(ULONG family, PVOID callback, PVOID context, - BOOLEAN init_notify, PHANDLE handle) +DWORD WINAPI NotifyIpInterfaceChange(ADDRESS_FAMILY family, PIPINTERFACE_CHANGE_CALLBACK callback, + PVOID context, BOOLEAN init_notify, PHANDLE handle) { FIXME("(family %d, callback %p, context %p, init_notify %d, handle %p): stub\n", family, callback, context, init_notify, handle); diff --git a/include/netioapi.h b/include/netioapi.h index 7c4917b4e0e..b34d0190303 100644 --- a/include/netioapi.h +++ b/include/netioapi.h @@ -90,6 +90,45 @@ typedef struct _MIB_IF_TABLE2 MIB_IF_ROW2 Table[1]; } MIB_IF_TABLE2, *PMIB_IF_TABLE2; +typedef struct _MIB_IPINTERFACE_ROW +{ + ADDRESS_FAMILY Family; + NET_LUID InterfaceLuid; + NET_IFINDEX InterfaceIndex; + ULONG MaxReassemblySize; + ULONG64 InterfaceIdentifier; + ULONG MinRouterAdvertisementInterval; + ULONG MaxRouterAdvertisementInterval; + BOOLEAN AdvertisingEnabled; + BOOLEAN ForwardingEnabled; + BOOLEAN WeakHostSend; + BOOLEAN WeakHostReceive; + BOOLEAN UseAutomaticMetric; + BOOLEAN UseNeighborUnreachabilityDetection; + BOOLEAN ManagedAddressConfigurationSupported; + BOOLEAN OtherStatefulConfigurationSupported; + BOOLEAN AdvertiseDefaultRoute; + NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior; + ULONG DadTransmits; + ULONG BaseReachableTime; + ULONG RetransmitTime; + ULONG PathMtuDiscoveryTimeout; + NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior; + ULONG LinkLocalAddressTimeout; + ULONG ZoneIndices[ScopeLevelCount]; + ULONG SitePrefixLength; + ULONG Metric; + ULONG NlMtu; + BOOLEAN Connected; + BOOLEAN SupportsWakeUpPatterns; + BOOLEAN SupportsNeighborDiscovery; + BOOLEAN SupportsRouterDiscovery; + ULONG ReachableTime; + NL_INTERFACE_OFFLOAD_ROD TransmitOffload; + NL_INTERFACE_OFFLOAD_ROD ReceiveOffload; + BOOLEAN DisableDefaultRoutes; +} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW; + typedef struct _MIB_UNICASTIPADDRESS_ROW { SOCKADDR_INET Address; @@ -106,6 +145,8 @@ typedef struct _MIB_UNICASTIPADDRESS_ROW LARGE_INTEGER CreationTimeStamp; } MIB_UNICASTIPADDRESS_ROW, *PMIB_UNICASTIPADDRESS_ROW; +typedef VOID (WINAPI *PIPINTERFACE_CHANGE_CALLBACK)(PVOID, PMIB_IPINTERFACE_ROW, + MIB_NOTIFICATION_TYPE); typedef VOID (WINAPI *PUNICAST_IPADDRESS_CHANGE_CALLBACK)(PVOID, PMIB_UNICASTIPADDRESS_ROW, MIB_NOTIFICATION_TYPE); diff --git a/include/nldef.h b/include/nldef.h index 550d3236d4a..1f96773c8e1 100644 --- a/include/nldef.h +++ b/include/nldef.h @@ -48,6 +48,21 @@ typedef enum IpDadStatePreferred, } NL_DAD_STATE; +typedef enum _NL_LINK_LOCAL_ADDRESS_BEHAVIOR +{ + LinkLocalAlwaysOff = 0, + LinkLocalDelayed, + LinkLocalAlwaysOn, + LinkLocalUnchanged = -1, +} NL_LINK_LOCAL_ADDRESS_BEHAVIOR; + +typedef enum _NL_ROUTER_DISCOVERY_BEHAVIOR +{ + RouterDiscoveryDisabled = 0, + RouterDiscoveryEnabled, + RouterDiscoveryDhcp, + RouterDiscoveryUnchanged = -1, +} NL_ROUTER_DISCOVERY_BEHAVIOR; typedef enum { @@ -75,5 +90,16 @@ typedef enum MAKE_ROUTE_PROTOCOL(NT_STATIC_NON_DOD, 10007), } NL_ROUTE_PROTOCOL, *PNL_ROUTE_PROTOCOL; +typedef struct _NL_INTERFACE_OFFLOAD_ROD +{ + BOOLEAN NlChecksumSupported : 1; + BOOLEAN NlOptionsSupported : 1; + BOOLEAN TlDatagramChecksumSupported : 1; + BOOLEAN TlStreamChecksumSupported : 1; + BOOLEAN TlStreamOptionsSupported : 1; + BOOLEAN FastPathCompatible : 1; + BOOLEAN TlLargeSendOffloadSupported : 1; + BOOLEAN TlGiantSendOffloadSupported : 1; +} NL_INTERFACE_OFFLOAD_ROD, *PNL_INTERFACE_OFFLOAD_ROD; #endif /* __WINE_NLDEF_H */ diff --git a/include/ws2def.h b/include/ws2def.h index fa21c06b503..b92bf68bae8 100644 --- a/include/ws2def.h +++ b/include/ws2def.h @@ -77,7 +77,8 @@ typedef enum { ScopeLevelAdmin = 4, ScopeLevelSite = 5, ScopeLevelOrganization = 8, - ScopeLevelGlobal = 14 + ScopeLevelGlobal = 14, + ScopeLevelCount = 16, } SCOPE_LEVEL; typedef struct