Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

702 lines
19 KiB

  1. /*++
  2. Copyright (c) 1998-1999 Microsoft Corporation
  3. Module Name:
  4. ioctl.h
  5. Abstract:
  6. This file contains the ioctl declarations for ARP1394, the IEEE1394 ARP module.
  7. Environment:
  8. Kernel mode
  9. Revision History:
  10. 11/20/1998 JosephJ Created
  11. 04/10/1999 JosephJ Defined structures to get/set info.
  12. --*/
  13. #ifndef _ARP1394_IOCTL_
  14. #define _ARP1394_IOCTL_
  15. #define ARP_CLIENT_DOS_DEVICE_NAME L"\\\\.\\ARP1394"
  16. #define ARP_IOCTL_CLIENT_OPERATION CTL_CODE(FILE_DEVICE_NETWORK, 100, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS)
  17. // Current version. To rev the version, increment the 2nd number in the
  18. // expression. The 1st number is a random 32-bit number.
  19. //
  20. #define ARP1394_IOCTL_VERSION (0x1ac86e68+3)
  21. // Common header.
  22. //
  23. typedef struct
  24. {
  25. // Set version to ARP1394_IOCTL_VERSION
  26. //
  27. ULONG Version;
  28. // IP address (in network byte order) of interface this request applies to.
  29. // (All-zeros == use default).
  30. //
  31. ULONG IfIpAddress;
  32. // Operation code. Each operation code is associated with
  33. // a structure relevant to the operation.
  34. //
  35. enum
  36. {
  37. // Display all ARP entries
  38. // Associated struct: ARP1394_IOCTL_GET_ARPCACHE
  39. //
  40. ARP1394_IOCTL_OP_GET_ARPCACHE,
  41. // Add a static arp entry.
  42. // Associated struct: ARP1394_IOCTL_ADD_ARP_ENTRY
  43. //
  44. ARP1394_IOCTL_OP_ADD_STATIC_ENTRY,
  45. // Delete a static arp entry.
  46. // Associated struct: ARP1394_IOCTL_DEL_ARP_ENTRY
  47. //
  48. ARP1394_IOCTL_OP_DEL_STATIC_ENTRY,
  49. // Get packet statistics.
  50. // Associated struct: ARP1394_IOCTL_GET_PACKET_STATS
  51. //
  52. ARP1394_IOCTL_OP_GET_PACKET_STATS,
  53. // Get task statistics.
  54. // Associated struct: ARP1394_IOCTL_GET_TASK_STATS
  55. //
  56. ARP1394_IOCTL_OP_GET_TASK_STATS,
  57. // Get arp table statistics.
  58. // Associated struct: ARP1394_IOCTL_GET_ARPCACHE_STATS
  59. //
  60. ARP1394_IOCTL_OP_GET_ARPCACHE_STATS,
  61. // Get call statistics.
  62. // Associated struct: ARP1394_IOCTL_GET_CALL_STATS
  63. //
  64. ARP1394_IOCTL_OP_GET_CALL_STATS,
  65. // Reset statistics collection.
  66. //
  67. ARP1394_IOCTL_OP_RESET_STATS,
  68. // Reinit the interface (deactivate and then activate it).
  69. //
  70. ARP1394_IOCTL_OP_REINIT_INTERFACE,
  71. // Receive a packet
  72. //
  73. ARP1394_IOCTL_OP_RECV_PACKET,
  74. // Get bus information
  75. //
  76. ARP1394_IOCTL_OP_GET_NICINFO,
  77. // Get MCAP-related information
  78. //
  79. ARP1394_IOCTL_OP_GET_MCAPINFO,
  80. //
  81. // FOLLOWING ARE FOR ETHERNET EMULATION. THESE SHOULD NOT BE
  82. // SUPPORTED FROM USER MODE. HOWEVER FOR TESTING PURPOSES THEY ARE
  83. // CURRENTLY SUPPORED FROM USER MODE
  84. //
  85. // This is a dummy op identifying the beginning of the ethernet-related
  86. // Ops.
  87. //
  88. ARP1394_IOCTL_OP_ETHERNET_FIRST = 0x100,
  89. // Start ethernet emulation on the specified adapter. We must not
  90. // currently be bound to this adapter.
  91. //
  92. ARP1394_IOCTL_OP_ETHERNET_START_EMULATION =
  93. ARP1394_IOCTL_OP_ETHERNET_FIRST,
  94. // Stop ethernet emulation on the specified adapter. We must be
  95. // currently using this adapter in ethernet mode.
  96. //
  97. ARP1394_IOCTL_OP_ETHERNET_STOP_EMULATION,
  98. // Start listening on this ethernet multicast address.
  99. //
  100. ARP1394_IOCTL_OP_ETHERNET_ADD_MULTICAST_ADDRESS,
  101. // Stop listening on this ethernet multicast address.
  102. //
  103. ARP1394_IOCTL_OP_ETHERNET_DEL_MULTICAST_ADDRESS,
  104. // Start listening on this ethernet multicast address.
  105. //
  106. ARP1394_IOCTL_OP_ETHERNET_ENABLE_PROMISCUOUS_MODE,
  107. // Stop listening on this ethernet multicast address.
  108. //
  109. ARP1394_IOCTL_OP_ETHERNET_DISABLE_PROMISCUOUS_MODE,
  110. // This is a dummy op identifying the beginning of the ethernet-related
  111. // Ops.
  112. //
  113. ARP1394_IOCTL_OP_ETHERNET_LAST =
  114. ARP1394_IOCTL_OP_ETHERNET_DISABLE_PROMISCUOUS_MODE,
  115. // This is an ioctl that returns, the Node, Euid, and Dummy Mac address
  116. // for the Bus
  117. ARP1394_IOCTL_OP_GET_EUID_NODE_MAC_TABLE
  118. } Op;
  119. } ARP1394_IOCTL_HEADER, *PARP1394_IOCTL_HEADER;
  120. typedef struct
  121. {
  122. UINT64 UniqueID;
  123. ULONG Off_Low;
  124. USHORT Off_High;
  125. } ARP1394_IOCTL_HW_ADDRESS, *PARP1394_IOCTL_HW_ADDRESS;
  126. typedef struct
  127. {
  128. ARP1394_IOCTL_HW_ADDRESS HwAddress;
  129. ULONG IpAddress;
  130. }
  131. ARP1394_ARP_ENTRY, *PARP1394_ARP_ENTRY;
  132. // Structure used to get items from the arp table.
  133. //
  134. typedef struct
  135. {
  136. // Hdr.Op must be set to ARP1394_IOCTL_OP_GET_ARPCACHE
  137. //
  138. ARP1394_IOCTL_HEADER Hdr;
  139. // Local HW Address (64-bit UniqueID and FIFO offset, if any).
  140. //
  141. ARP1394_IOCTL_HW_ADDRESS LocalHwAddress;
  142. // Total entries currently in the arp table.
  143. //
  144. UINT NumEntriesInArpCache;
  145. // Total number of entries avilable in THIS structure.
  146. //
  147. UINT NumEntriesAvailable;
  148. // Number of entries filled out in this structure.
  149. //
  150. UINT NumEntriesUsed;
  151. // Zero-based index of the first entry in the structure in the
  152. // arp table.
  153. //
  154. UINT Index;
  155. // Space for NumEntriesAvailable arp table entries.
  156. //
  157. ARP1394_ARP_ENTRY Entries[1];
  158. } ARP1394_IOCTL_GET_ARPCACHE, *PARP1394_IOCTL_GET_ARPCACHE;
  159. // Structure used to add a single static arp entry.
  160. //
  161. typedef struct
  162. {
  163. // Hdr.Op must be set to ARP1394_IOCTL_OP_ADD_STATIC_ENTRY
  164. //
  165. ARP1394_IOCTL_HEADER Hdr;
  166. // Destination HW Address.
  167. //
  168. ARP1394_IOCTL_HW_ADDRESS HwAddress;
  169. // Destination IP Address in network byte order
  170. //
  171. ULONG IpAddress;
  172. } ARP1394_IOCTL_ADD_ARP_ENTRY, *PARP1394_IOCTL_ADD_ARP_ENTRY;
  173. // Structure used to delete a single static arp entry.
  174. //
  175. typedef struct
  176. {
  177. // Hdr.Op must be set to ARP1394_IOCTL_OP_ADD_STATIC_ENTRY
  178. //
  179. ARP1394_IOCTL_HEADER Hdr;
  180. // Destination IP Address in network byte order.
  181. //
  182. ULONG IpAddress;
  183. } ARP1394_IOCTL_DEL_ARP_ENTRY, *PARP1394_IOCTL_DEL_ARP_ENTRY;
  184. // Enumeration of packet size slots
  185. //
  186. enum
  187. {
  188. ARP1394_PKTSIZE_128, // <= 128 bytes
  189. ARP1394_PKTSIZE_256, // 129 ... 256 bytes
  190. ARP1394_PKTSIZE_1K, // 257 ... 1K bytes
  191. ARP1394_PKTSIZE_2K, // 1K+1 .. .2K bytes
  192. ARP1394_PKTSIZE_G2K, // > 2K bytes
  193. ARP1394_NUM_PKTSIZE_SLOTS
  194. };
  195. // Enumeration of packet send/recv time slots
  196. //
  197. enum
  198. {
  199. // ARP1394_PKTTIME_1US, // <= 1 microsecond
  200. // ARP1394_PKTTIME_100US, // 1+ ... 100 microsecond
  201. ARP1394_PKTTIME_100US, // <= 100 microsecond
  202. ARP1394_PKTTIME_1MS, // 0.1+ ... 1 millisecond
  203. ARP1394_PKTTIME_10MS, // 1+ ... 10 milliseconds
  204. ARP1394_PKTTIME_100MS, // 10+ ...100 milliseconds
  205. ARP1394_PKTTIME_G100MS, // > 100 milliseconds
  206. // ARP1394_PKTTIME_G10MS, // > 10 milliseconds
  207. ARP1394_NUM_PKTTIME_SLOTS
  208. };
  209. // Enumeration of task time slots
  210. //
  211. enum
  212. {
  213. ARP1394_TASKTIME_1MS, // <= 1 millisecond
  214. ARP1394_TASKTIME_100MS, // 1+ ... 100 milliseconds
  215. ARP1394_TASKTIME_1S, // 0.1+ ... 1 second
  216. ARP1394_TASKTIME_10S, // 1+ ... 10 seconds
  217. ARP1394_TASKTIME_G10S, // > 10 seconds
  218. ARP1394_NUM_TASKTIME_SLOTS
  219. };
  220. // Keeps track of the packet counts for each combination of packet-size-slot
  221. // and packet-time-slot.
  222. //
  223. typedef struct
  224. {
  225. // Count of successful packets
  226. //
  227. UINT GoodCounts[ARP1394_NUM_PKTSIZE_SLOTS][ARP1394_NUM_PKTTIME_SLOTS];
  228. // Count of unsuccessful packets
  229. //
  230. UINT BadCounts [ARP1394_NUM_PKTSIZE_SLOTS][ARP1394_NUM_PKTTIME_SLOTS];
  231. } ARP1394_PACKET_COUNTS, *PARP1394_PACKET_COUNTS;
  232. // Structure used to get packet stats.
  233. //
  234. typedef struct
  235. {
  236. // Hdr.Op must be set to ARP1394_IOCTL_OP_GET_PACKET_STATS
  237. //
  238. ARP1394_IOCTL_HEADER Hdr;
  239. // Duration of stats collection, in seconds.
  240. //
  241. UINT StatsDuration;
  242. //
  243. // Some send stats
  244. //
  245. UINT TotSends;
  246. UINT FastSends;
  247. UINT MediumSends;
  248. UINT SlowSends;
  249. UINT BackFills;
  250. UINT HeaderBufUses;
  251. UINT HeaderBufCacheHits;
  252. //
  253. // Some recv stats
  254. //
  255. UINT TotRecvs;
  256. UINT NoCopyRecvs;
  257. UINT CopyRecvs;
  258. UINT ResourceRecvs;
  259. //
  260. // Packet counts
  261. //
  262. ARP1394_PACKET_COUNTS SendFifoCounts;
  263. ARP1394_PACKET_COUNTS RecvFifoCounts;
  264. ARP1394_PACKET_COUNTS SendChannelCounts;
  265. ARP1394_PACKET_COUNTS RecvChannelCounts;
  266. } ARP1394_IOCTL_GET_PACKET_STATS, *PARP1394_IOCTL_GET_PACKET_STATS;
  267. // Structure used to get task stats.
  268. //
  269. typedef struct
  270. {
  271. // Hdr.Op must be set to ARP1394_IOCTL_OP_GET_TASK_STATS
  272. //
  273. ARP1394_IOCTL_HEADER Hdr;
  274. // Duration of stats collection, in seconds.
  275. //
  276. UINT StatsDuration;
  277. UINT TotalTasks;
  278. UINT CurrentTasks;
  279. UINT TimeCounts[ARP1394_NUM_TASKTIME_SLOTS];
  280. } ARP1394_IOCTL_GET_TASK_STATS, *PARP1394_IOCTL_GET_TASK_STATS;
  281. // Structure used to get arp table stats.
  282. //
  283. typedef struct
  284. {
  285. // Hdr.Op must be set to ARP1394_IOCTL_OP_GET_ARPCACHE_STATS
  286. //
  287. ARP1394_IOCTL_HEADER Hdr;
  288. // Duration of stats collection, in seconds.
  289. //
  290. UINT StatsDuration;
  291. UINT TotalQueries;
  292. UINT SuccessfulQueries;
  293. UINT FailedQueries;
  294. UINT TotalResponses;
  295. UINT TotalLookups;
  296. UINT TraverseRatio;
  297. } ARP1394_IOCTL_GET_ARPCACHE_STATS, *PARP1394_IOCTL_GET_ARPCACHE_STATS;
  298. // Structure used to get call stats.
  299. //
  300. typedef struct
  301. {
  302. // Hdr.Op must be set to ARP1394_IOCTL_OP_GET_CALL_STATS
  303. //
  304. ARP1394_IOCTL_HEADER Hdr;
  305. // Duration of stats collection, in seconds.
  306. //
  307. UINT StatsDuration;
  308. //
  309. // FIFO-related call stats.
  310. //
  311. UINT TotalSendFifoMakeCalls;
  312. UINT SuccessfulSendFifoMakeCalls;
  313. UINT FailedSendFifoMakeCalls;
  314. UINT IncomingClosesOnSendFifos;
  315. //
  316. // Channel-related call stats.
  317. //
  318. UINT TotalChannelMakeCalls;
  319. UINT SuccessfulChannelMakeCalls;
  320. UINT FailedChannelMakeCalls;
  321. UINT IncomingClosesOnChannels;
  322. } ARP1394_IOCTL_GET_CALL_STATS, *PARP1394_IOCTL_GET_CALL_STATS;
  323. // Structure used to reset statistics.
  324. //
  325. typedef struct
  326. {
  327. // Hdr.Op must be set to ARP1394_IOCTL_OP_RESET_STATS
  328. //
  329. ARP1394_IOCTL_HEADER Hdr;
  330. } ARP1394_IOCTL_RESET_STATS, *PARP1394_IOCTL_RESET_STATS;
  331. // Structure used to re-init the interface.
  332. //
  333. typedef struct
  334. {
  335. // Hdr.Op must be set to ARP1394_IOCTL_OP_REINIT_INTERFACE
  336. //
  337. ARP1394_IOCTL_HEADER Hdr;
  338. } ARP1394_IOCTL_REINIT_INTERFACE, *PARP1394_IOCTL_REINIT_INTERFACE;
  339. #if 0
  340. //
  341. // the structure for returning basic information about the miniport.
  342. //
  343. typedef struct
  344. {
  345. UINT64 UniqueID; // This node's 64-bit Unique ID.
  346. ULONG BusGeneration; // 1394 Bus generation ID.
  347. USHORT NodeAddress; // Local nodeID for the current bus
  348. // generation.
  349. USHORT Reserved; // Padding.
  350. UINT MaxRecvBlockSize; // Maximum size, in bytes, of blocks
  351. // that can be read.
  352. UINT MaxRecvSpeed; // Max speed which can be accepted
  353. // -- minimum
  354. // of the max local link speed and
  355. // the max local PHY speed.
  356. } ARP1394_IOCTL_LOCAL_NODE_INFO, *PARP1394_IOCTL_LOCAL_NODE_INFO;
  357. //
  358. // the structure for returning basic information about a remote node.
  359. //
  360. typedef struct
  361. {
  362. UINT64 UniqueID; // This node's 64-bit Unique ID.
  363. USHORT NodeAddress; // Local nodeID for the current bus
  364. // generation.
  365. USHORT Reserved; // Padding.
  366. UINT MaxRecvBlockSize; // Maximum size, in bytes, of blocks
  367. // that can be read.
  368. UINT MaxRecvSpeed; // Max speed which can be accepted
  369. // -- minimum
  370. // of the max local link speed and
  371. // the max local PHY speed.
  372. UINT MaxSpeedBetweenNodes;// Max speed which can be accepted
  373. UINT Flags; // One or more ARP1394_IOCTL_REMOTEFLAGS_* consts
  374. #define ARP1394_IOCTL_REMOTEFLAGS_ACTIVE (0x1<<0)
  375. #define ARP1394_IOCTL_REMOTEFLAGS_LOADING (0x1<<1)
  376. #define ARP1394_IOCTL_REMOTEFLAGS_UNLOADING (0x1<<2)
  377. #if 0 // later
  378. //
  379. // Following numbers are since the last bus reset.
  380. //
  381. UINT NumFifoPktsSent;
  382. UINT NumFifoPktsReceived;
  383. UINT NumChannelPktsReceived;
  384. UINT NumFifoSendFailures;
  385. UINT NumFifoReceiveDiscards;
  386. UINT NumChannelPktsReceived;
  387. UINT64 NumFifoBytesSent;
  388. UINT64 NumChannelBytesSent;
  389. UINT64 NumFifoBytesReceived;
  390. UINT64 NumChannelBytesReceived;
  391. #endif // 0
  392. } ARP1394_IOCTL_REMOTE_NODE_INFO, *PARP1394_IOCTL_REMOTE_NODE_INFO;
  393. typedef struct
  394. {
  395. UINT NumPacketsSent;
  396. UINT NumPacketsReceived;
  397. #if 0 // later
  398. UINT NumSendFailures;
  399. UINT NumReceiveDiscards;
  400. UINT64 NumBytesSent;
  401. UINT64 NumBytesReceived;
  402. #endif // 0
  403. } ARP1394_IOCTL_CHANNEL_INFO, *PARP1394_IOCTL_CHANNEL_INFO;
  404. #endif // 0
  405. #define ARP1394_IOCTL_MAX_BUSINFO_NODES 64
  406. #define ARP1394_IOCTL_MAX_BUSINFO_CHANNELS 64
  407. #define ARP1394_IOCTL_MAX_PACKET_SIZE 1000
  408. typedef struct
  409. {
  410. // Hdr.Op must be set to ARP1394_IOCTL_NICINFO
  411. //
  412. ARP1394_IOCTL_HEADER Hdr;
  413. // NIC information (defined in nic1394.h)
  414. //
  415. NIC1394_NICINFO Info;
  416. #if 0
  417. UINT Version;
  418. UINT ChannelMapLow; // LSB bit == channel 0
  419. UINT ChannelMapHigh; // MSB bit == channel 63
  420. UINT NumBusResets;
  421. UINT SecondsSinceLastBusReset;
  422. UINT NumRemoteNodes;
  423. ARP1394_IOCTL_LOCAL_NODE_INFO LocalNodeInfo;
  424. ARP1394_IOCTL_REMOTE_NODE_INFO RemoteNodeInfo[ARP1394_IOCTL_MAX_BUSINFO_NODES];
  425. ARP1394_IOCTL_CHANNEL_INFO ChannelInfo[ARP1394_IOCTL_MAX_BUSINFO_CHANNELS];
  426. #endif
  427. } ARP1394_IOCTL_NICINFO, *PARP1394_IOCTL_NICINFO;
  428. typedef struct
  429. {
  430. // Hdr.Op must be set to ARP1394_IOCTL_SEND_PACKET
  431. //
  432. ARP1394_IOCTL_HEADER Hdr;
  433. UINT PacketSize;
  434. UCHAR Data[ARP1394_IOCTL_MAX_PACKET_SIZE];
  435. } ARP1394_IOCTL_SEND_PACKET, *PARP1394_IOCTL_SEND_PACKET;
  436. typedef struct
  437. {
  438. // Hdr.Op must be set to ARP1394_IOCTL_RECV_PACKET
  439. //
  440. ARP1394_IOCTL_HEADER Hdr;
  441. UINT PacketSize;
  442. UCHAR Data[ARP1394_IOCTL_MAX_PACKET_SIZE];
  443. } ARP1394_IOCTL_RECV_PACKET, *PARP1394_IOCTL_RECV_PACKET;
  444. typedef struct
  445. {
  446. // Channel number.
  447. //
  448. UINT Channel;
  449. // IP multicast group address bound to this channel.
  450. //
  451. ULONG GroupAddress;
  452. // Absolute time at which this information was updated,
  453. // in seconds.
  454. //
  455. UINT UpdateTime;
  456. // Absolute time at which this mapping will expire.
  457. // In seconds.
  458. //
  459. UINT ExpieryTime;
  460. UINT SpeedCode;
  461. // Status
  462. //
  463. UINT Flags; // One of the ARP1394_IOCTL_MCIFLAGS_*
  464. #define ARP1394_IOCTL_MCIFLAGS_ALLOCATED 0x1
  465. // NodeID of owner of this channel.
  466. //
  467. UINT NodeId;
  468. } ARP1394_IOCTL_MCAP_CHANNEL_INFO;
  469. // Structure used to get MCAP-related info.
  470. //
  471. typedef struct
  472. {
  473. // Hdr.Op must be set to ARP1394_IOCTL_OP_GET_MCAPINFO
  474. //
  475. ARP1394_IOCTL_HEADER Hdr;
  476. // Number of entries filled out in this structure.
  477. //
  478. UINT NumEntries;
  479. // Space for NumEntriesAvailable arp table entries.
  480. //
  481. ARP1394_IOCTL_MCAP_CHANNEL_INFO
  482. Entries[ARP1394_IOCTL_MAX_BUSINFO_CHANNELS];
  483. } ARP1394_IOCTL_GET_MCAPINFO, *PARP1394_IOCTL_GET_MCAPINFO;
  484. typedef struct
  485. {
  486. // Hdr.Op must be set to one of
  487. // ARP1394_IOCTL_OP_ETHERNET_START_EMULATION
  488. // ARP1394_IOCTL_OP_ETHERNET_STOP_EMULATION
  489. // ARP1394_IOCTL_OP_ETHERNET_ADD_MULTICAST_ADDRESS
  490. // ARP1394_IOCTL_OP_ETHERNET_DEL_MULTICAST_ADDRESS
  491. // ARP1394_IOCTL_OP_ETHERNET_ENABLE_PROMISCUOUS_MODE
  492. // ARP1394_IOCTL_OP_ETHERNET_DISABLE_PROMISCUOUS_MODE
  493. //
  494. ARP1394_IOCTL_HEADER Hdr;
  495. // Null-terminated NDIS Adapter name
  496. //
  497. #define ARP1394_MAX_ADAPTER_NAME_LENGTH 128
  498. WCHAR AdapterName[ARP1394_MAX_ADAPTER_NAME_LENGTH+1];
  499. // Flags. Reserved for future use.
  500. //
  501. UINT Flags;
  502. // Ethernet MAC address. Usage as follows:
  503. //
  504. // ARP1394_IOCTL_OP_ETHERNET_ADD_MULTICAST_ADDRESS: Multicast address
  505. // ARP1394_IOCTL_OP_ETHERNET_DEL_MULTICAST_ADDRESS: Multicast address
  506. //
  507. // Unused for other operations.
  508. //
  509. UCHAR MacAddress[6];
  510. } ARP1394_IOCTL_ETHERNET_NOTIFICATION, *PARP1394_IOCTL_ETHERNET_NOTIFICATION;
  511. typedef struct
  512. {
  513. // Hdr.Op must be set to ARP1394_IOCTL_OP_GET_EUID_NODE_MAC_TABLE
  514. //
  515. ARP1394_IOCTL_HEADER Hdr;
  516. //
  517. //This contains the Topology
  518. EUID_TOPOLOGY Map;
  519. } ARP1394_IOCTL_EUID_NODE_MAC_INFO, *PARP1394_IOCTL_EUID_NODE_MAC_INFO;
  520. typedef union
  521. {
  522. ARP1394_IOCTL_HEADER Hdr;
  523. ARP1394_IOCTL_GET_ARPCACHE GetArpCache;
  524. ARP1394_IOCTL_ADD_ARP_ENTRY AddArpEntry;
  525. ARP1394_IOCTL_DEL_ARP_ENTRY DelArpEntry;
  526. ARP1394_IOCTL_GET_PACKET_STATS GetPktStats;
  527. ARP1394_IOCTL_GET_TASK_STATS GetTaskStats;
  528. ARP1394_IOCTL_GET_ARPCACHE_STATS GetArpStats;
  529. ARP1394_IOCTL_GET_CALL_STATS GetCallStats;
  530. ARP1394_IOCTL_RESET_STATS ResetStats;
  531. ARP1394_IOCTL_REINIT_INTERFACE ReinitInterface;
  532. ARP1394_IOCTL_NICINFO IoctlNicInfo;
  533. ARP1394_IOCTL_SEND_PACKET SendPacket;
  534. ARP1394_IOCTL_RECV_PACKET RecvPacket;
  535. ARP1394_IOCTL_ETHERNET_NOTIFICATION EthernetNotification;
  536. ARP1394_IOCTL_EUID_NODE_MAC_INFO EuidNodeMacInfo;
  537. } ARP1394_IOCTL_COMMAND, *PARP1394_IOCTL_COMMAND;
  538. #endif // _ARP1394_IOCTL_