[1/3] include: Add some types and constants used in the IP helper API.

Hans Leidekker hans at codeweavers.com
Wed Apr 29 04:40:11 CDT 2009


diff --git a/include/ipifcons.h b/include/ipifcons.h
index b249b24..fe99b2f 100644
--- a/include/ipifcons.h
+++ b/include/ipifcons.h
@@ -18,6 +18,35 @@
 #ifndef WINE_IPIFCONS_H__
 #define WINE_IPIFCONS_H__
 
+#define IF_TYPE_OTHER                   1
+#define IF_TYPE_REGULAR_1822            2
+#define IF_TYPE_HDH_1822                3
+#define IF_TYPE_DDN_X25                 4
+#define IF_TYPE_RFC877_X25              5
+#define IF_TYPE_ETHERNET_CSMACD         6
+#define IF_TYPE_IS088023_CSMACD         7
+#define IF_TYPE_ISO88024_TOKENBUS       8
+#define IF_TYPE_ISO88025_TOKENRING      9
+#define IF_TYPE_ISO88026_MAN            10
+#define IF_TYPE_STARLAN                 11
+#define IF_TYPE_PROTEON_10MBIT          12
+#define IF_TYPE_PROTEON_80MBIT          13
+#define IF_TYPE_HYPERCHANNEL            14
+#define IF_TYPE_FDDI                    15
+#define IF_TYPE_LAP_B                   16
+#define IF_TYPE_SDLC                    17
+#define IF_TYPE_DS1                     18
+#define IF_TYPE_E1                      19
+#define IF_TYPE_BASIC_ISDN              20
+#define IF_TYPE_PRIMARY_ISDN            21
+#define IF_TYPE_PROP_POINT2POINT_SERIAL 22
+#define IF_TYPE_PPP                     23
+#define IF_TYPE_SOFTWARE_LOOPBACK       24
+#define IF_TYPE_EON                     25
+#define IF_TYPE_ETHERNET_3MBIT          26
+#define IF_TYPE_NSIP                    27
+#define IF_TYPE_SLIP                    28
+
 #define MIB_IF_TYPE_OTHER               1
 #define MIB_IF_TYPE_ETHERNET            6
 #define MIB_IF_TYPE_TOKENRING           9
diff --git a/include/iptypes.h b/include/iptypes.h
index c0b8115..5601dbd 100644
--- a/include/iptypes.h
+++ b/include/iptypes.h
@@ -84,4 +84,139 @@ typedef struct {
     UINT EnableDns;
 } FIXED_INFO, *PFIXED_INFO;
 
+typedef enum {
+    IpPrefixOriginOther = 0,
+    IpPrefixOriginManual,
+    IpPrefixOriginWellKnown,
+    IpPrefixOriginDhcp,
+    IpPrefixOriginRouterAdvertisement,
+    IpPrefixOriginUnchanged = 16
+} IP_PREFIX_ORIGIN;
+
+typedef enum {
+    IpSuffixOriginOther = 0,
+    IpSuffixOriginManual,
+    IpSuffixOriginWellKnown,
+    IpSuffixOriginDhcp,
+    IpSuffixOriginLinkLayerAddress,
+    IpSuffixOriginRandom,
+    IpSuffixOriginUnchanged = 16
+} IP_SUFFIX_ORIGIN;
+
+typedef enum {
+    IfOperStatusUp = 1,
+    IfOperStatusDown,
+    IfOperStatusTesting,
+    IfOperStatusUnknown,
+    IfOperStatusDormant,
+    IfOperStatusNotPresent,
+    IfOperStatusLowerLayerDown
+} IF_OPER_STATUS;
+
+typedef enum {
+    IpDadStateInvalid = 0,
+    IpDadStateTentative,
+    IpDadStateDuplicate,
+    IpDadStateDeprecated,
+    IpDadStatePreferred
+} IP_DAD_STATE;
+
+#ifdef _WINSOCK2API_
+
+typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
+    union {
+        struct {
+            ULONG Length;
+            DWORD Flags;
+        };
+    };
+    struct _IP_ADAPTER_UNICAST_ADDRESS *Next;
+    SOCKET_ADDRESS                      Address;
+    IP_PREFIX_ORIGIN                    PrefixOrigin;
+    IP_SUFFIX_ORIGIN                    SuffixOrigin;
+    IP_DAD_STATE                        DadState;
+    ULONG                               ValidLifetime;
+    ULONG                               PreferredLifetime;
+    ULONG                               LeaseLifetime;
+} IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
+
+typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
+    union {
+        ULONGLONG Alignment;
+        struct {
+            ULONG Length;
+            DWORD Flags;
+        };
+    };
+    struct _IP_ADAPTER_ANYCAST_ADDRESS *Next;
+    SOCKET_ADDRESS                      Address;
+} IP_ADAPTER_ANYCAST_ADDRESS, *PIP_ADAPTER_ANYCAST_ADDRESS;
+
+typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
+    union {
+        ULONGLONG Alignment;
+        struct {
+            ULONG Length;
+            DWORD Flags;
+        };
+    };
+    struct _IP_ADAPTER_MULTICAST_ADDRESS *Next;
+    SOCKET_ADDRESS                       Address;
+} IP_ADAPTER_MULTICAST_ADDRESS, *PIP_ADAPTER_MULTICAST_ADDRESS;
+
+typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
+    union {
+        ULONGLONG Alignment;
+        struct {
+            ULONG Length;
+            DWORD Reserved;
+        };
+    };
+    struct _IP_ADAPTER_DNS_SERVER_ADDRESS *Next;
+    SOCKET_ADDRESS                         Address;
+} IP_ADAPTER_DNS_SERVER_ADDRESS, *PIP_ADAPTER_DNS_SERVER_ADDRESS;
+
+typedef struct _IP_ADAPTER_PREFIX {
+    union {
+        ULONGLONG Alignment;
+        struct {
+            ULONG Length;
+            DWORD Flags;
+        };
+    };
+    struct _IP_ADAPTER_PREFIX *Next;
+    SOCKET_ADDRESS             Address;
+    ULONG                      PrefixLength;
+} IP_ADAPTER_PREFIX, *PIP_ADAPTER_PREFIX;
+
+typedef struct _IP_ADAPTER_ADDRESSES {
+    union {
+        ULONGLONG Alignment;
+        struct {
+            ULONG Length;
+            DWORD IfIndex;
+        };
+    };
+    struct _IP_ADAPTER_ADDRESSES   *Next;
+    PCHAR                           AdapterName;
+    PIP_ADAPTER_UNICAST_ADDRESS     FirstUnicastAddress;
+    PIP_ADAPTER_ANYCAST_ADDRESS     FirstAnycastAddress;
+    PIP_ADAPTER_MULTICAST_ADDRESS   FirstMulticastAddress;
+    PIP_ADAPTER_DNS_SERVER_ADDRESS  FirstDnsServerAddress;
+    PWCHAR                          DnsSuffix;
+    PWCHAR                          Description;
+    PWCHAR                          FriendlyName;
+    BYTE                            PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
+    DWORD                           PhysicalAddressLength;
+    DWORD                           Flags;
+    DWORD                           Mtu;
+    DWORD                           IfType;
+    IF_OPER_STATUS                  OperStatus;
+    DWORD                           Ipv6IfIndex;
+    DWORD                           ZoneIndices[16];
+    PIP_ADAPTER_PREFIX              FirstPrefix;
+} IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
+
+#endif /* _WINSOCK2API_ */
+
 #endif /* WINE_IPTYPES_H_*/



More information about the wine-patches mailing list