ifdef.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _INC_IFDEF
  7. #define _INC_IFDEF
  8. #include <ipifcons.h>
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. #define IF_MAX_STRING_SIZE 256
  13. #define IF_MAX_PHYS_ADDRESS_LENGTH 32
  14. typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID;
  15. typedef ULONG NET_IFINDEX, *PNET_IFINDEX;
  16. typedef UINT16 NET_IFTYPE, *PNET_IFTYPE;
  17. typedef NET_IFINDEX IF_INDEX, *PIF_INDEX;
  18. typedef GUID NET_IF_NETWORK_GUID;
  19. typedef enum _IF_OPER_STATUS {
  20. IfOperStatusUp = 1,
  21. IfOperStatusDown,
  22. IfOperStatusTesting,
  23. IfOperStatusUnknown,
  24. IfOperStatusDormant,
  25. IfOperStatusNotPresent,
  26. IfOperStatusLowerLayerDown
  27. } IF_OPER_STATUS;
  28. typedef enum _NET_IF_OPER_STATUS {
  29. NET_IF_OPER_STATUS_UP = 1,
  30. NET_IF_OPER_STATUS_DOWN,
  31. NET_IF_OPER_STATUS_TESTING,
  32. NET_IF_OPER_STATUS_UNKNOWN,
  33. NET_IF_OPER_STATUS_DORMANT,
  34. NET_IF_OPER_STATUS_NOT_PRESENT,
  35. NET_IF_OPER_STATUS_LOWER_LAYER_DOWN
  36. } NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS;
  37. typedef enum _NET_IF_ADMIN_STATUS {
  38. NET_IF_ADMIN_STATUS_UP = 1,
  39. NET_IF_ADMIN_STATUS_DOWN,
  40. NET_IF_ADMIN_STATUS_TESTING
  41. } NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
  42. typedef enum _NET_IF_MEDIA_CONNECT_STATE {
  43. MediaConnectStateUnknown,
  44. MediaConnectStateConnected,
  45. MediaConnectStateDisconnected
  46. } NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
  47. typedef enum _NET_IF_ACCESS_TYPE {
  48. NET_IF_ACCESS_LOOPBACK = 1,
  49. NET_IF_ACCESS_BROADCAST,
  50. NET_IF_ACCESS_POINT_TO_POINT,
  51. NET_IF_ACCESS_POINT_TO_MULTI_POINT,
  52. NET_IF_ACCESS_MAXIMUM
  53. } NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE;
  54. typedef enum _NET_IF_CONNECTION_TYPE {
  55. NET_IF_CONNECTION_DEDICATED = 1,
  56. NET_IF_CONNECTION_PASSIVE,
  57. NET_IF_CONNECTION_DEMAND,
  58. NET_IF_CONNECTION_MAXIMUM
  59. } NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
  60. typedef enum _NET_IF_DIRECTION_TYPE {
  61. NET_IF_DIRECTION_SENDRECEIVE,
  62. NET_IF_DIRECTION_SENDONLY,
  63. NET_IF_DIRECTION_RECEIVEONLY,
  64. NET_IF_DIRECTION_MAXIMUM
  65. } NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE;
  66. typedef enum _NET_IF_MEDIA_DUPLEX_STATE {
  67. MediaDuplexStateUnknown,
  68. MediaDuplexStateHalf,
  69. MediaDuplexStateFull
  70. } NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE;
  71. typedef enum _TUNNEL_TYPE {
  72. TUNNEL_TYPE_NONE = 0,
  73. TUNNEL_TYPE_OTHER = 1,
  74. TUNNEL_TYPE_DIRECT = 2,
  75. TUNNEL_TYPE_6TO4 = 11,
  76. TUNNEL_TYPE_ISATAP = 13,
  77. TUNNEL_TYPE_TEREDO = 14,
  78. TUNNEL_TYPE_IPHTTPS = 15
  79. } TUNNEL_TYPE, *PTUNNEL_TYPE;
  80. typedef union _NET_LUID {
  81. ULONG64 Value;
  82. __C89_NAMELESS struct { /* bitfield with 64 bit types. */
  83. ULONG64 Reserved :24;
  84. ULONG64 NetLuidIndex :24;
  85. ULONG64 IfType :16;
  86. } Info;
  87. } NET_LUID, *PNET_LUID;
  88. typedef NET_LUID IF_LUID, *PIF_LUID;
  89. typedef struct _IF_COUNTED_STRING_LH {
  90. USHORT Length;
  91. WCHAR String[IF_MAX_STRING_SIZE + 1];
  92. } IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH;
  93. typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING;
  94. typedef IF_COUNTED_STRING *PIF_COUNTED_STRING;
  95. typedef struct _IF_PHYSICAL_ADDRESS_LH {
  96. USHORT Length;
  97. UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH];
  98. } IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH;
  99. typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS;
  100. typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS;
  101. #ifdef __cplusplus
  102. }
  103. #endif
  104. #endif /* _INC_IFDEF */