[PSDK] Attempt to improve the whole iphlpapi related headers situation. CORE-7685...
[reactos.git] / reactos / include / psdk / ifdef.h
index 7b4268e..bdda8a2 100644 (file)
-#ifndef _IFDEF_
-#define _IFDEF_
+/* WINE ifdef.h
+ * Copyright 2010 Juan Lang
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+#ifndef WINE_IFDEF_H
+#define WINE_IFDEF_H
+
+#include <ipifcons.h>
+
+typedef ULONG32 NET_IF_OBJECT_ID, *PNET_IF_OBJECT_ID;
+typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID;
+typedef GUID NET_IF_NETWORK_GUID, *PNET_IF_NETWORK_GUID;
+typedef ULONG NET_IFINDEX, *PNET_IFINDEX;
+typedef NET_IFINDEX IF_INDEX, *PIF_INDEX;
+typedef UINT16 NET_IFTYPE, *PNET_IFTYPE;
+
+#define NET_IF_OPER_STATUS_DOWN_NOT_AUTHENTICATED   0x00000001
+#define NET_IF_OPER_STATUS_DOWN_NOT_MEDIA_CONNECTED 0x00000002
+#define NET_IF_OPER_STATUS_DORMANT_PAUSED           0x00000004
+#define NET_IF_OPER_STATUS_DORMANT_LOW_POWER        0x00000008
+
+#define NET_IF_COMPARTMENT_ID_UNSPECIFIED 0
+#define NET_IF_COMPARTMENT_ID_PRIMARY     1
+
+#define NET_IF_OID_IF_ALIAS       0x00000001
+#define NET_IF_OID_COMPARTMENT_ID 0x00000002
+#define NET_IF_OID_NETWORK_GUID   0x00000003
+#define NET_IF_OID_IF_ENTRY       0x00000004
+
+#define NET_SET_UNSPECIFIED_NETWORK_GUID(x)
+#define NET_IS_UNSPECIFIED_NETWORK_GUID(x)
+
+#define NET_SITEID_UNSPECIFIED 0
+#define NET_SITEID_MAXUSER     0x07ffffff
+#define NET_SITEID_MAXSYSTEM   0x0fffffff
+
+#define NET_IFINDEX_UNSPECIFIED 0
+#define IFI_UNSPECIFIED         NET_IFINDEX_UNSPECIFIED
+
+#define NET_IFLUID_UNSPECIFIED 0
+
+#define NIIF_HARDWARE_INTERFACE      0x00000001
+#define NIIF_FILTER_INTERFACE        0x00000002
+#define NIIF_NDIS_WDM_INTERFACE      0x00000020
+#define NIIF_NDIS_ENDPOINT_INTERFACE 0x00000040
+#define NIIF_NDIS_ISCSI_INTERFACE    0x00000080
+#define NIIF_WAN_TUNNEL_TYPE_UNKNOWN 0xffffffff
+
+#define NET_BUS_NUMBER_UNKNOWN      0xffffffff
+#define NET_SLOT_NUMBER_UNKNOWN     0xffffffff
+#define NET_FUNCTION_NUMBER_UNKNOWN 0xffffffff
 
 #define IF_MAX_STRING_SIZE 256
 #define IF_MAX_PHYS_ADDRESS_LENGTH 32
 
-typedef union _NET_LUID_LH
-{
+typedef enum _NET_IF_ADMIN_STATUS {
+    NET_IF_ADMIN_STATUS_UP      = 1,
+    NET_IF_ADMIN_STATUS_DOWN    = 2,
+    NET_IF_ADMIN_STATUS_TESTING = 3
+} NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
+
+typedef enum _NET_IF_OPER_STATUS {
+    NET_IF_OPER_STATUS_UP               = 1,
+    NET_IF_OPER_STATUS_DOWN             = 2,
+    NET_IF_OPER_STATUS_TESTING          = 3,
+    NET_IF_OPER_STATUS_UNKNOWN          = 4,
+    NET_IF_OPER_STATUS_DORMANT          = 5,
+    NET_IF_OPER_STATUS_NOT_PRESENT      = 6,
+    NET_IF_OPER_STATUS_LOWER_LAYER_DOWN = 7
+} NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS;
+
+typedef enum _NET_IF_RCV_ADDRESS_TYPE {
+    NET_IF_RCV_ADDRESS_TYPE_OTHER        = 1,
+    NET_IF_RCV_ADDRESS_TYPE_VOLATILE     = 2,
+    NET_IF_RCV_ADDRESS_TYPE_NON_VOLATILE = 3
+} NET_IF_RCV_ADDRESS_TYPE, *PNET_IF_RCV_ADDRESS_TYPE;
+
+typedef struct _NET_IF_RCV_ADDRESS_LH {
+    NET_IF_RCV_ADDRESS_TYPE ifRcvAddressType;
+    USHORT                  ifRcvAddressLength;
+    USHORT                  ifRcvAddressOffset;
+} NET_IF_RCV_ADDRESS_LH, *PNET_IF_RCV_ADDRESS_LH;
+typedef NET_IF_RCV_ADDRESS_LH NET_IF_RCV_ADDRESS;
+typedef NET_IF_RCV_ADDRESS_LH  *PNET_IF_RCV_ADDRESS;
+
+typedef union _NET_LUID_LH {
     ULONG64 Value;
-    struct
-    {
-        ULONG64 Reserved:24;
-        ULONG64 NetLuidIndex:24;
-        ULONG64 IfType:16;
-    }Info;
+    struct {
+        ULONG64 Reserved : 24;
+        ULONG64 NetLuidIndex : 24;
+        ULONG64 IfType : 16;
+    } Info;
 } NET_LUID_LH, *PNET_LUID_LH;
-
 typedef NET_LUID_LH NET_LUID;
-typedef NET_LUID* PNET_LUID;
-
-typedef ULONG NET_IFINDEX, *PNET_IFINDEX;
-typedef ULONG IFTYPE;
-typedef GUID NET_IF_NETWORK_GUID, *PNET_IF_NETWORK_GUID;
+typedef NET_LUID *PNET_LUID;
+typedef NET_LUID IF_LUID;
+typedef NET_LUID *PIF_LUID;
 
-typedef enum {
-    TUNNEL_TYPE_NONE = 0,
-    TUNNEL_TYPE_OTHER = 1,
-    TUNNEL_TYPE_DIRECT = 2,
-    TUNNEL_TYPE_6TO4 = 11,
-    TUNNEL_TYPE_ISATAP = 13,
-    TUNNEL_TYPE_TEREDO = 14,
-} TUNNEL_TYPE, *PTUNNEL_TYPE;
-
-typedef enum _NET_IF_ACCESS_TYPE
-{
-    NET_IF_ACCESS_LOOPBACK = 1,
-    NET_IF_ACCESS_BROADCAST = 2,
-    NET_IF_ACCESS_POINT_TO_POINT = 3,
+typedef enum _NET_IF_ACCESS_TYPE {
+    NET_IF_ACCESS_LOOPBACK             = 1,
+    NET_IF_ACCESS_BROADCAST            = 2,
+    NET_IF_ACCESS_POINT_TO_POINT       = 2,
     NET_IF_ACCESS_POINT_TO_MULTI_POINT = 4,
-    NET_IF_ACCESS_MAXIMUM = 5
+    NET_IF_ACCESS_MAXIMUM              = 5
 } NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE;
 
-typedef enum _NET_IF_DIRECTION_TYPE
-{
-    NET_IF_DIRECTION_SENDRECEIVE,
-    NET_IF_DIRECTION_SENDONLY,
-    NET_IF_DIRECTION_RECEIVEONLY,
-    NET_IF_DIRECTION_MAXIMUM
+typedef enum _NET_IF_DIRECTION_TYPE {
+    NET_IF_DIRECTION_SENDRECEIVE = 0,
+    NET_IF_DIRECTION_SENDONLY    = 1,
+    NET_IF_DIRECTION_RECEIVEONLY = 2,
+    NET_IF_DIRECTION_MAXIMUM     = 3
 } NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE;
 
-typedef enum _NET_IF_ADMIN_STATUS
-{
-    NET_IF_ADMIN_STATUS_UP = 1,
-    NET_IF_ADMIN_STATUS_DOWN = 2,
-    NET_IF_ADMIN_STATUS_TESTING = 3
-} NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
+typedef enum _NET_IF_CONNECTION_TYPE {
+    NET_IF_CONNECTION_DEDICATED = 1,
+    NET_IF_CONNECTION_PASSIVE   = 2,
+    NET_IF_CONNECTION_DEMAND    = 3,
+    NET_IF_CONNECTION_MAXIMUM   = 4,
+} NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
 
-typedef enum _NET_IF_MEDIA_CONNECT_STATE
-{
-    MediaConnectStateUnknown,
-    MediaConnectStateConnected,
-    MediaConnectStateDisconnected
+typedef enum _NET_IF_MEDIA_CONNECT_STATE {
+    MediaConnectStateUnknown      = 0,
+    MediaConnectStateConnected    = 1,
+    MediaConnectStateDisconnected = 2
 } NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
 
-typedef enum _NET_IF_CONNECTION_TYPE
-{
-   NET_IF_CONNECTION_DEDICATED = 1,
-   NET_IF_CONNECTION_PASSIVE = 2,
-   NET_IF_CONNECTION_DEMAND = 3,
-   NET_IF_CONNECTION_MAXIMUM = 4
-} NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
+typedef enum _NET_IF_MEDIA_DUPLEX_STATE {
+    MediaDuplexStateUnknown = 0,
+    MediaDuplexStateHalf    = 1,
+    MediaDuplexStateFull    = 2
+} NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE;
+
+typedef struct _NET_PHYSICAL_LOCATION_LH {
+    ULONG BusNumber;
+    ULONG SlotNumber;
+    ULONG FunctionNumber;
+} NET_PHYSICAL_LOCATION_LH, *PNET_PHYSICAL_LOCATION_LH;
+typedef NET_PHYSICAL_LOCATION_LH NET_PHYSICAL_LOCATION;
+typedef NET_PHYSICAL_LOCATION *PNET_PHYSICAL_LOCATION;
+
+typedef struct _IF_COUNTED_STRING_LH {
+    USHORT Length;
+    WCHAR  String[IF_MAX_STRING_SIZE + 1];
+} IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH;
+typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING;
+typedef IF_COUNTED_STRING *PIF_COUNTED_STRING;
+
+typedef struct _IF_PHYSICAL_ADDRESS_LH {
+    USHORT Length;
+    UCHAR  Address[IF_MAX_PHYS_ADDRESS_LENGTH];
+} IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH;
+typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS;
+typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS;
 
 typedef enum {
-  IfOperStatusUp = 1,
-  IfOperStatusDown,
-  IfOperStatusTesting,
-  IfOperStatusUnknown,
-  IfOperStatusDormant,
-  IfOperStatusNotPresent,
-  IfOperStatusLowerLayerDown
+    TUNNEL_TYPE_NONE    = 0,
+    TUNNEL_TYPE_OTHER   = 1,
+    TUNNEL_TYPE_DIRECT  = 2,
+    TUNNEL_TYPE_6TO4    = 11,
+    TUNNEL_TYPE_ISATAP  = 13,
+    TUNNEL_TYPE_TEREDO  = 14,
+    TUNNEL_TYPE_IPHTTPS = 15,
+} TUNNEL_TYPE;
+
+typedef enum _IF_ADMINISTRATIVE_STATE {
+    IF_ADMINISTRATIVE_STATE_DISABLED   = 0,
+    IF_ADMINISTRATIVE_STATE_ENABLED    = 1,
+    IF_ADMINISTRATIVE_STATE_DEMANDDIAL = 2
+} IF_ADMINISTRATIVE_STATE, *PIF_ADMINISTRATIVE_STATE;
+
+typedef enum {
+    IfOperStatusUp = 1,
+    IfOperStatusDown,
+    IfOperStatusTesting,
+    IfOperStatusUnknown,
+    IfOperStatusDormant,
+    IfOperStatusNotPresent,
+    IfOperStatusLowerLayerDown
 } IF_OPER_STATUS;
 
-#endif /* _IFDEF_ */
+typedef struct _NDIS_INTERFACE_INFORMATION {
+    NET_IF_OPER_STATUS         ifOperStatus;
+    ULONG                      ifOperStatusFlags;
+    NET_IF_MEDIA_CONNECT_STATE MediaConnectState;
+    NET_IF_MEDIA_DUPLEX_STATE  MediaDuplexState;
+    ULONG                      ifMtu;
+    BOOLEAN                    ifPromiscuousMode;
+    BOOLEAN                    ifDeviceWakeUpEnable;
+    ULONG64                    XmitLinkSpeed;
+    ULONG64                    RcvLinkSpeed;
+    ULONG64                    ifLastChange;
+    ULONG64                    ifCounterDiscontinuityTime;
+    ULONG64                    ifInUnknownProtos;
+    ULONG64                    ifInDiscards;
+    ULONG64                    ifInErrors;
+    ULONG64                    ifHCInOctets;
+    ULONG64                    ifHCInUcastPkts;
+    ULONG64                    ifHCInMulticastPkts;
+    ULONG64                    ifHCInBroadcastPkts;
+    ULONG64                    ifHCOutOctets;
+    ULONG64                    ifHCOutUcastPkts;
+    ULONG64                    ifHCOutMulticastPkts;
+    ULONG64                    ifHCOutBroadcastPkts;
+    ULONG64                    ifOutErrors;
+    ULONG64                    ifOutDiscards;
+    ULONG64                    ifHCInUcastOctets;
+    ULONG64                    ifHCInMulticastOctets;
+    ULONG64                    ifHCInBroadcastOctets;
+    ULONG64                    ifHCOutUcastOctets;
+    ULONG64                    ifHCOutMulticastOctets;
+    ULONG64                    ifHCOutBroadcastOctets;
+    NET_IF_COMPARTMENT_ID      CompartmentId;
+    ULONG                      SupportedStatistics;
+} NDIS_INTERFACE_INFORMATION, *PNDIS_INTERFACE_INFORMATION;
+
+#endif /* WINE_IFDEF_H*/