2
0

jwaiptypes.pas 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. {******************************************************************************}
  2. { }
  3. { Internet Protocol Helper API interface Unit for Object Pascal }
  4. { }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
  6. { Corporation. All Rights Reserved. }
  7. { }
  8. { The original file is: iptypes.h, released July 2000. The original Pascal }
  9. { code is: IpTypes.pas, released September 2000. The initial developer of the }
  10. { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
  11. { }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
  13. { Marcel van Brakel. All Rights Reserved. }
  14. { }
  15. { Contributor(s): John C. Penman (jcp att craiglockhart dott com) }
  16. { Vladimir Vassiliev (voldemarv att hotpop dott com) }
  17. { }
  18. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
  19. { }
  20. { You may retrieve the latest version of this file at the Project JEDI }
  21. { APILIB home page, located at http://jedi-apilib.sourceforge.net }
  22. { }
  23. { The contents of this file are used with permission, subject to the Mozilla }
  24. { Public License Version 1.1 (the "License"); you may not use this file except }
  25. { in compliance with the License. You may obtain a copy of the License at }
  26. { http://www.mozilla.org/MPL/MPL-1.1.html }
  27. { }
  28. { Software distributed under the License is distributed on an "AS IS" basis, }
  29. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  30. { the specific language governing rights and limitations under the License. }
  31. { }
  32. { Alternatively, the contents of this file may be used under the terms of the }
  33. { GNU Lesser General Public License (the "LGPL License"), in which case the }
  34. { provisions of the LGPL License are applicable instead of those above. }
  35. { If you wish to allow use of your version of this file only under the terms }
  36. { of the LGPL License and not to allow others to use your version of this file }
  37. { under the MPL, indicate your decision by deleting the provisions above and }
  38. { replace them with the notice and other provisions required by the LGPL }
  39. { License. If you do not delete the provisions above, a recipient may use }
  40. { your version of this file under either the MPL or the LGPL License. }
  41. { }
  42. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  43. { }
  44. {******************************************************************************}
  45. unit JwaIpTypes;
  46. {$WEAKPACKAGEUNIT}
  47. {$HPPEMIT ''}
  48. {$HPPEMIT '#include "iptypes.h"'}
  49. {$HPPEMIT ''}
  50. {$I jediapilib.inc}
  51. interface
  52. uses
  53. JwaWinsock2, JwaWinType;
  54. type
  55. // #include <time.h> // TODO
  56. time_t = Longint;
  57. {$EXTERNALSYM time_t}
  58. // Definitions and structures used by getnetworkparams and getadaptersinfo apis
  59. const
  60. MAX_ADAPTER_DESCRIPTION_LENGTH = 128; // arb.
  61. {$EXTERNALSYM MAX_ADAPTER_DESCRIPTION_LENGTH}
  62. MAX_ADAPTER_NAME_LENGTH = 256; // arb.
  63. {$EXTERNALSYM MAX_ADAPTER_NAME_LENGTH}
  64. MAX_ADAPTER_ADDRESS_LENGTH = 8; // arb.
  65. {$EXTERNALSYM MAX_ADAPTER_ADDRESS_LENGTH}
  66. DEFAULT_MINIMUM_ENTITIES = 32; // arb.
  67. {$EXTERNALSYM DEFAULT_MINIMUM_ENTITIES}
  68. MAX_HOSTNAME_LEN = 128; // arb.
  69. {$EXTERNALSYM MAX_HOSTNAME_LEN}
  70. MAX_DOMAIN_NAME_LEN = 128; // arb.
  71. {$EXTERNALSYM MAX_DOMAIN_NAME_LEN}
  72. MAX_SCOPE_ID_LEN = 256; // arb.
  73. {$EXTERNALSYM MAX_SCOPE_ID_LEN}
  74. //
  75. // types
  76. //
  77. // Node Type
  78. BROADCAST_NODETYPE = 1;
  79. {$EXTERNALSYM BROADCAST_NODETYPE}
  80. PEER_TO_PEER_NODETYPE = 2;
  81. {$EXTERNALSYM PEER_TO_PEER_NODETYPE}
  82. MIXED_NODETYPE = 4;
  83. {$EXTERNALSYM MIXED_NODETYPE}
  84. HYBRID_NODETYPE = 8;
  85. {$EXTERNALSYM HYBRID_NODETYPE}
  86. //
  87. // IP_ADDRESS_STRING - store an IP address as a dotted decimal string
  88. //
  89. type
  90. PIP_MASK_STRING = ^IP_MASK_STRING;
  91. {$EXTERNALSYM PIP_MASK_STRING}
  92. IP_ADDRESS_STRING = record
  93. S: array [0..15] of Char;
  94. end;
  95. {$EXTERNALSYM IP_ADDRESS_STRING}
  96. PIP_ADDRESS_STRING = ^IP_ADDRESS_STRING;
  97. {$EXTERNALSYM PIP_ADDRESS_STRING}
  98. IP_MASK_STRING = IP_ADDRESS_STRING;
  99. {$EXTERNALSYM IP_MASK_STRING}
  100. TIpAddressString = IP_ADDRESS_STRING;
  101. PIpAddressString = PIP_MASK_STRING;
  102. //
  103. // IP_ADDR_STRING - store an IP address with its corresponding subnet mask,
  104. // both as dotted decimal strings
  105. //
  106. PIP_ADDR_STRING = ^IP_ADDR_STRING;
  107. {$EXTERNALSYM PIP_ADDR_STRING}
  108. _IP_ADDR_STRING = record
  109. Next: PIP_ADDR_STRING;
  110. IpAddress: IP_ADDRESS_STRING;
  111. IpMask: IP_MASK_STRING;
  112. Context: DWORD;
  113. end;
  114. {$EXTERNALSYM _IP_ADDR_STRING}
  115. IP_ADDR_STRING = _IP_ADDR_STRING;
  116. {$EXTERNALSYM IP_ADDR_STRING}
  117. TIpAddrString = IP_ADDR_STRING;
  118. PIpAddrString = PIP_ADDR_STRING;
  119. //
  120. // ADAPTER_INFO - per-adapter information. All IP addresses are stored as
  121. // strings
  122. //
  123. PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;
  124. {$EXTERNALSYM PIP_ADAPTER_INFO}
  125. _IP_ADAPTER_INFO = record
  126. Next: PIP_ADAPTER_INFO;
  127. ComboIndex: DWORD;
  128. AdapterName: array [0..MAX_ADAPTER_NAME_LENGTH + 3] of Char;
  129. Description: array [0..MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of Char;
  130. AddressLength: UINT;
  131. Address: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE;
  132. Index: DWORD;
  133. Type_: UINT;
  134. DhcpEnabled: UINT;
  135. CurrentIpAddress: PIP_ADDR_STRING;
  136. IpAddressList: IP_ADDR_STRING;
  137. GatewayList: IP_ADDR_STRING;
  138. DhcpServer: IP_ADDR_STRING;
  139. HaveWins: BOOL;
  140. PrimaryWinsServer: IP_ADDR_STRING;
  141. SecondaryWinsServer: IP_ADDR_STRING;
  142. LeaseObtained: time_t;
  143. LeaseExpires: time_t;
  144. end;
  145. {$EXTERNALSYM _IP_ADAPTER_INFO}
  146. IP_ADAPTER_INFO = _IP_ADAPTER_INFO;
  147. {$EXTERNALSYM IP_ADAPTER_INFO}
  148. TIpAdapterInfo = IP_ADAPTER_INFO;
  149. PIpAdapterInfo = PIP_ADAPTER_INFO;
  150. //
  151. // The following types require Winsock2.
  152. //
  153. IP_PREFIX_ORIGIN = (
  154. IpPrefixOriginOther,
  155. IpPrefixOriginManual,
  156. IpPrefixOriginWellKnown,
  157. IpPrefixOriginDhcp,
  158. IpPrefixOriginRouterAdvertisement);
  159. {$EXTERNALSYM IP_PREFIX_ORIGIN}
  160. TIpPrefixOrigin = IP_PREFIX_ORIGIN;
  161. IP_SUFFIX_ORIGIN = (
  162. IpSuffixOriginOther,
  163. IpSuffixOriginManual,
  164. IpSuffixOriginWellKnown,
  165. IpSuffixOriginDhcp,
  166. IpSuffixOriginLinkLayerAddress,
  167. IpSuffixOriginRandom);
  168. {$EXTERNALSYM IP_SUFFIX_ORIGIN}
  169. TIpSuffixOrigin = IP_SUFFIX_ORIGIN;
  170. IP_DAD_STATE = (
  171. IpDadStateInvalid,
  172. IpDadStateTentative,
  173. IpDadStateDuplicate,
  174. IpDadStateDeprecated,
  175. IpDadStatePreferred);
  176. {$EXTERNALSYM IP_DAD_STATE}
  177. TIpDadState = IP_DAD_STATE;
  178. PIP_ADAPTER_UNICAST_ADDRESS = ^_IP_ADAPTER_UNICAST_ADDRESS;
  179. {$EXTERNALSYM PIP_ADAPTER_UNICAST_ADDRESS}
  180. _IP_ADAPTER_UNICAST_ADDRESS = record
  181. Union: record
  182. case Integer of
  183. 0: (
  184. Alignment: ULONGLONG);
  185. 1: (
  186. Length: ULONG;
  187. Flags: DWORD);
  188. end;
  189. Next: PIP_ADAPTER_UNICAST_ADDRESS;
  190. Address: SOCKET_ADDRESS;
  191. PrefixOrigin: IP_PREFIX_ORIGIN;
  192. SuffixOrigin: IP_SUFFIX_ORIGIN;
  193. DadState: IP_DAD_STATE;
  194. ValidLifetime: ULONG;
  195. PreferredLifetime: ULONG;
  196. LeaseLifetime: ULONG;
  197. end;
  198. {$EXTERNALSYM _IP_ADAPTER_UNICAST_ADDRESS}
  199. IP_ADAPTER_UNICAST_ADDRESS = _IP_ADAPTER_UNICAST_ADDRESS;
  200. {$EXTERNALSYM IP_ADAPTER_UNICAST_ADDRESS}
  201. TIpAdapterUnicastAddress = IP_ADAPTER_UNICAST_ADDRESS;
  202. PIpAdapterUnicastAddress = PIP_ADAPTER_UNICAST_ADDRESS;
  203. PIP_ADAPTER_ANYCAST_ADDRESS = ^_IP_ADAPTER_ANYCAST_ADDRESS;
  204. {$EXTERNALSYM PIP_ADAPTER_ANYCAST_ADDRESS}
  205. _IP_ADAPTER_ANYCAST_ADDRESS = record
  206. Union: record
  207. case Integer of
  208. 0: (
  209. Alignment: ULONGLONG);
  210. 1: (
  211. Length: ULONG;
  212. Flags: DWORD);
  213. end;
  214. Next: PIP_ADAPTER_ANYCAST_ADDRESS;
  215. Address: SOCKET_ADDRESS;
  216. end;
  217. {$EXTERNALSYM _IP_ADAPTER_ANYCAST_ADDRESS}
  218. IP_ADAPTER_ANYCAST_ADDRESS = _IP_ADAPTER_ANYCAST_ADDRESS;
  219. {$EXTERNALSYM IP_ADAPTER_ANYCAST_ADDRESS}
  220. TIpAdapterAnycaseAddress = IP_ADAPTER_ANYCAST_ADDRESS;
  221. PIpAdapterAnycaseAddress = PIP_ADAPTER_ANYCAST_ADDRESS;
  222. PIP_ADAPTER_MULTICAST_ADDRESS = ^_IP_ADAPTER_MULTICAST_ADDRESS;
  223. {$EXTERNALSYM PIP_ADAPTER_MULTICAST_ADDRESS}
  224. _IP_ADAPTER_MULTICAST_ADDRESS = record
  225. Union: record
  226. case Integer of
  227. 0: (
  228. Alignment: ULONGLONG);
  229. 1: (
  230. Length: ULONG;
  231. Flags: DWORD);
  232. end;
  233. Next: PIP_ADAPTER_MULTICAST_ADDRESS;
  234. Address: SOCKET_ADDRESS;
  235. end;
  236. {$EXTERNALSYM _IP_ADAPTER_MULTICAST_ADDRESS}
  237. IP_ADAPTER_MULTICAST_ADDRESS = _IP_ADAPTER_MULTICAST_ADDRESS;
  238. TIpAdapterMulticastAddress = IP_ADAPTER_MULTICAST_ADDRESS;
  239. PIpAdapterMulticastAddress = PIP_ADAPTER_MULTICAST_ADDRESS;
  240. //
  241. // Per-address Flags
  242. //
  243. const
  244. IP_ADAPTER_ADDRESS_DNS_ELIGIBLE = $01;
  245. {$EXTERNALSYM IP_ADAPTER_ADDRESS_DNS_ELIGIBLE}
  246. IP_ADAPTER_ADDRESS_TRANSIENT = $02;
  247. {$EXTERNALSYM IP_ADAPTER_ADDRESS_TRANSIENT}
  248. type
  249. PIP_ADAPTER_DNS_SERVER_ADDRESS = ^_IP_ADAPTER_DNS_SERVER_ADDRESS;
  250. {$EXTERNALSYM PIP_ADAPTER_DNS_SERVER_ADDRESS}
  251. _IP_ADAPTER_DNS_SERVER_ADDRESS = record
  252. Union: record
  253. case Integer of
  254. 0: (
  255. Alignment: ULONGLONG);
  256. 1: (
  257. Length: ULONG;
  258. Reserved: DWORD);
  259. end;
  260. Next: PIP_ADAPTER_DNS_SERVER_ADDRESS;
  261. Address: SOCKET_ADDRESS;
  262. end;
  263. {$EXTERNALSYM _IP_ADAPTER_DNS_SERVER_ADDRESS}
  264. IP_ADAPTER_DNS_SERVER_ADDRESS = _IP_ADAPTER_DNS_SERVER_ADDRESS;
  265. {$EXTERNALSYM IP_ADAPTER_DNS_SERVER_ADDRESS}
  266. TIpAdapterDnsServerAddress = IP_ADAPTER_DNS_SERVER_ADDRESS;
  267. PIpAdapterDnsServerAddress = PIP_ADAPTER_DNS_SERVER_ADDRESS;
  268. PIP_ADAPTER_PREFIX = ^IP_ADAPTER_PREFIX;
  269. {$EXTERNALSYM PIP_ADAPTER_PREFIX}
  270. _IP_ADAPTER_PREFIX = record
  271. Union: record
  272. case Integer of
  273. 0: (
  274. Alignment: ULONGLONG);
  275. 1: (
  276. Length: ULONG;
  277. Flags: DWORD);
  278. end;
  279. Next: PIP_ADAPTER_PREFIX;
  280. Address: SOCKET_ADDRESS;
  281. PrefixLength: ULONG;
  282. end;
  283. {$EXTERNALSYM _IP_ADAPTER_PREFIX}
  284. IP_ADAPTER_PREFIX = _IP_ADAPTER_PREFIX;
  285. {$EXTERNALSYM IP_ADAPTER_PREFIX}
  286. TIpAdapterPrefix = IP_ADAPTER_PREFIX;
  287. PIpAdapterPrefix = PIP_ADAPTER_PREFIX;
  288. //
  289. // Per-adapter Flags
  290. //
  291. const
  292. IP_ADAPTER_DDNS_ENABLED = $01;
  293. {$EXTERNALSYM IP_ADAPTER_DDNS_ENABLED}
  294. IP_ADAPTER_REGISTER_ADAPTER_SUFFIX = $02;
  295. {$EXTERNALSYM IP_ADAPTER_REGISTER_ADAPTER_SUFFIX}
  296. IP_ADAPTER_DHCP_ENABLED = $04;
  297. {$EXTERNALSYM IP_ADAPTER_DHCP_ENABLED}
  298. IP_ADAPTER_RECEIVE_ONLY = $08;
  299. {$EXTERNALSYM IP_ADAPTER_RECEIVE_ONLY}
  300. IP_ADAPTER_NO_MULTICAST = $10;
  301. {$EXTERNALSYM IP_ADAPTER_NO_MULTICAST}
  302. IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG = $20;
  303. {$EXTERNALSYM IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG}
  304. //
  305. // OperStatus values from RFC 2863
  306. //
  307. type
  308. IF_OPER_STATUS = (
  309. IfOperStatusUp,
  310. IfOperStatusDown,
  311. IfOperStatusTesting,
  312. IfOperStatusUnknown,
  313. IfOperStatusDormant,
  314. IfOperStatusNotPresent,
  315. IfOperStatusLowerLayerDown);
  316. {$EXTERNALSYM IF_OPER_STATUS}
  317. TIfOperStatus = IF_OPER_STATUS;
  318. //
  319. // Scope levels from RFC 2373 used with ZoneIndices array.
  320. //
  321. const
  322. ScopeLevelInterface = 1;
  323. {$EXTERNALSYM ScopeLevelInterface}
  324. ScopeLevelLink = 2;
  325. {$EXTERNALSYM ScopeLevelLink}
  326. ScopeLevelSubnet = 3;
  327. {$EXTERNALSYM ScopeLevelSubnet}
  328. ScopeLevelAdmin = 4;
  329. {$EXTERNALSYM ScopeLevelAdmin}
  330. ScopeLevelSite = 5;
  331. {$EXTERNALSYM ScopeLevelSite}
  332. ScopeLevelOrganization = 8;
  333. {$EXTERNALSYM ScopeLevelOrganization}
  334. ScopeLevelGlobal = 14;
  335. {$EXTERNALSYM ScopeLevelGlobal}
  336. type
  337. SCOPE_LEVEL = DWORD;
  338. {$EXTERNALSYM SCOPE_LEVEL}
  339. TScopeLevel = SCOPE_LEVEL;
  340. PIP_ADAPTER_ADDRESSES = ^_IP_ADAPTER_ADDRESSES;
  341. {$EXTERNALSYM PIP_ADAPTER_ADDRESSES}
  342. _IP_ADAPTER_ADDRESSES = record
  343. Union: record
  344. case Integer of
  345. 0: (
  346. Alignment: ULONGLONG);
  347. 1: (
  348. Length: ULONG;
  349. IfIndex: DWORD);
  350. end;
  351. Next: PIP_ADAPTER_ADDRESSES;
  352. AdapterName: PCHAR;
  353. FirstUnicastAddress: PIP_ADAPTER_UNICAST_ADDRESS;
  354. FirstAnycastAddress: PIP_ADAPTER_ANYCAST_ADDRESS;
  355. FirstMulticastAddress: PIP_ADAPTER_MULTICAST_ADDRESS;
  356. FirstDnsServerAddress: PIP_ADAPTER_DNS_SERVER_ADDRESS;
  357. DnsSuffix: PWCHAR;
  358. Description: PWCHAR;
  359. FriendlyName: PWCHAR;
  360. PhysicalAddress: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE;
  361. PhysicalAddressLength: DWORD;
  362. Flags: DWORD;
  363. Mtu: DWORD;
  364. IfType: DWORD;
  365. OperStatus: IF_OPER_STATUS;
  366. Ipv6IfIndex: DWORD;
  367. ZoneIndices: array [0..15] of DWORD;
  368. FirstPrefix: PIP_ADAPTER_PREFIX;
  369. end;
  370. {$EXTERNALSYM _IP_ADAPTER_ADDRESSES}
  371. IP_ADAPTER_ADDRESSES = _IP_ADAPTER_ADDRESSES;
  372. {$EXTERNALSYM IP_ADAPTER_ADDRESSES}
  373. TIpAdapterAddresses = IP_ADAPTER_ADDRESSES;
  374. PIpAdapterAddresses = PIP_ADAPTER_ADDRESSES;
  375. //
  376. // Flags used as argument to GetAdaptersAddresses().
  377. // "SKIP" flags are added when the default is to include the information.
  378. // "INCLUDE" flags are added when the default is to skip the information.
  379. //
  380. const
  381. GAA_FLAG_SKIP_UNICAST = $0001;
  382. {$EXTERNALSYM GAA_FLAG_SKIP_UNICAST}
  383. GAA_FLAG_SKIP_ANYCAST = $0002;
  384. {$EXTERNALSYM GAA_FLAG_SKIP_ANYCAST}
  385. GAA_FLAG_SKIP_MULTICAST = $0004;
  386. {$EXTERNALSYM GAA_FLAG_SKIP_MULTICAST}
  387. GAA_FLAG_SKIP_DNS_SERVER = $0008;
  388. {$EXTERNALSYM GAA_FLAG_SKIP_DNS_SERVER}
  389. GAA_FLAG_INCLUDE_PREFIX = $0010;
  390. {$EXTERNALSYM GAA_FLAG_INCLUDE_PREFIX}
  391. GAA_FLAG_SKIP_FRIENDLY_NAME = $0020;
  392. {$EXTERNALSYM GAA_FLAG_SKIP_FRIENDLY_NAME}
  393. //
  394. // IP_PER_ADAPTER_INFO - per-adapter IP information such as DNS server list.
  395. //
  396. type
  397. PIP_PER_ADAPTER_INFO = ^IP_PER_ADAPTER_INFO;
  398. {$EXTERNALSYM PIP_PER_ADAPTER_INFO}
  399. _IP_PER_ADAPTER_INFO = record
  400. AutoconfigEnabled: UINT;
  401. AutoconfigActive: UINT;
  402. CurrentDnsServer: PIP_ADDR_STRING;
  403. DnsServerList: IP_ADDR_STRING;
  404. end;
  405. {$EXTERNALSYM _IP_PER_ADAPTER_INFO}
  406. IP_PER_ADAPTER_INFO = _IP_PER_ADAPTER_INFO;
  407. {$EXTERNALSYM IP_PER_ADAPTER_INFO}
  408. TIpPerAdapterInfo = IP_PER_ADAPTER_INFO;
  409. PIpPerAdapterInfo = PIP_PER_ADAPTER_INFO;
  410. //
  411. // FIXED_INFO - the set of IP-related information which does not depend on DHCP
  412. //
  413. PFIXED_INFO = ^FIXED_INFO;
  414. {$EXTERNALSYM PFIXED_INFO}
  415. FIXED_INFO = record
  416. HostName: array [0..MAX_HOSTNAME_LEN + 3] of Char;
  417. DomainName: array[0..MAX_DOMAIN_NAME_LEN + 3] of Char;
  418. CurrentDnsServer: PIP_ADDR_STRING;
  419. DnsServerList: IP_ADDR_STRING;
  420. NodeType: UINT;
  421. ScopeId: array [0..MAX_SCOPE_ID_LEN + 3] of Char;
  422. EnableRouting: UINT;
  423. EnableProxy: UINT;
  424. EnableDns: UINT;
  425. end;
  426. {$EXTERNALSYM FIXED_INFO}
  427. TFixedInfo = FIXED_INFO;
  428. PFixedInfo = PFIXED_INFO;
  429. IP_INTERFACE_NAME_INFO = record
  430. Index: ULONG; // Interface Index
  431. MediaType: ULONG; // Interface Types - see ipifcons.h
  432. ConnectionType: UCHAR;
  433. AccessType: UCHAR;
  434. DeviceGuid: TGUID; // Device GUID is the guid of the device
  435. // that IP exposes
  436. InterfaceGuid: TGUID; // Interface GUID, if not GUID_NULL is the
  437. // GUID for the interface mapped to the device.
  438. end;
  439. PIP_INTERFACE_NAME_INFO = ^IP_INTERFACE_NAME_INFO;
  440. {$EXTERNALSYM PIP_INTERFACE_NAME_INFO}
  441. TIpInterfaceNameInfo = IP_INTERFACE_NAME_INFO;
  442. PIpInterfaceNameInfo = ^IP_INTERFACE_NAME_INFO;
  443. implementation
  444. end.