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.

3082 lines
111 KiB

  1. /*++ BUILD Version: 0001 // Increment this if a change has global effects
  2. Copyright (c) Microsoft Corporation. All rights reserved.
  3. Module Name:
  4. ntddndis.h
  5. Abstract:
  6. This is the include file that defines all constants and types for
  7. accessing the Network driver interface device.
  8. Author:
  9. NDIS/ATM Development Team
  10. Revision History:
  11. added the correct values for NDIS 3.0.
  12. added Pnp IoCTLs and structures
  13. added general co ndis oids.
  14. added PnP and PM OIDs.
  15. --*/
  16. #ifndef _NTDDNDIS_
  17. #define _NTDDNDIS_
  18. #if _MSC_VER > 1000
  19. #pragma once
  20. #endif
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. //
  25. // Device Name - this string is the name of the device. It is the name
  26. // that should be passed to NtOpenFile when accessing the device.
  27. //
  28. // Note: For devices that support multiple units, it should be suffixed
  29. // with the Ascii representation of the unit number.
  30. //
  31. #define DD_NDIS_DEVICE_NAME "\\Device\\UNKNOWN"
  32. //
  33. // NtDeviceIoControlFile IoControlCode values for this device.
  34. //
  35. // Warning: Remember that the low two bits of the code specify how the
  36. // buffers are passed to the driver!
  37. //
  38. #define _NDIS_CONTROL_CODE(request,method) \
  39. CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS)
  40. #define IOCTL_NDIS_QUERY_GLOBAL_STATS _NDIS_CONTROL_CODE(0, METHOD_OUT_DIRECT)
  41. #define IOCTL_NDIS_QUERY_ALL_STATS _NDIS_CONTROL_CODE(1, METHOD_OUT_DIRECT)
  42. #define IOCTL_NDIS_DO_PNP_OPERATION _NDIS_CONTROL_CODE(2, METHOD_BUFFERED)
  43. #define IOCTL_NDIS_QUERY_SELECTED_STATS _NDIS_CONTROL_CODE(3, METHOD_OUT_DIRECT)
  44. #define IOCTL_NDIS_ENUMERATE_INTERFACES _NDIS_CONTROL_CODE(4, METHOD_BUFFERED)
  45. #define IOCTL_NDIS_ADD_TDI_DEVICE _NDIS_CONTROL_CODE(5, METHOD_BUFFERED)
  46. #define IOCTL_NDIS_GET_LOG_DATA _NDIS_CONTROL_CODE(7, METHOD_OUT_DIRECT)
  47. #define IOCTL_NDIS_GET_VERSION _NDIS_CONTROL_CODE(8, METHOD_BUFFERED)
  48. //
  49. // NtDeviceIoControlFile InputBuffer/OutputBuffer record structures for
  50. // this device.
  51. //
  52. //
  53. // This is the type of an NDIS OID value.
  54. //
  55. typedef ULONG NDIS_OID, *PNDIS_OID;
  56. //
  57. // IOCTL_NDIS_QUERY_ALL_STATS returns a sequence of these, packed
  58. // together. This structure is unaligned because not all statistics
  59. // have a length that is a ULONG multiple.
  60. //
  61. typedef UNALIGNED struct _NDIS_STATISTICS_VALUE
  62. {
  63. NDIS_OID Oid;
  64. ULONG DataLength;
  65. UCHAR Data[1]; // variable length
  66. } NDIS_STATISTICS_VALUE, *PNDIS_STATISTICS_VALUE;
  67. //
  68. // Structure used to define a self-contained variable data structure
  69. //
  70. typedef struct _NDIS_VAR_DATA_DESC
  71. {
  72. USHORT Length; // # of octects of data
  73. USHORT MaximumLength; // # of octects available
  74. ULONG_PTR Offset; // Offset of data relative to the descriptor
  75. } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC;
  76. #ifndef GUID_DEFINED
  77. #include <guiddef.h>
  78. #endif // !GUID_DEFINED
  79. //
  80. // General Objects
  81. //
  82. //
  83. // Required OIDs
  84. //
  85. #define OID_GEN_SUPPORTED_LIST 0x00010101
  86. #define OID_GEN_HARDWARE_STATUS 0x00010102
  87. #define OID_GEN_MEDIA_SUPPORTED 0x00010103
  88. #define OID_GEN_MEDIA_IN_USE 0x00010104
  89. #define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
  90. #define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
  91. #define OID_GEN_LINK_SPEED 0x00010107
  92. #define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
  93. #define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
  94. #define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A
  95. #define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B
  96. #define OID_GEN_VENDOR_ID 0x0001010C
  97. #define OID_GEN_VENDOR_DESCRIPTION 0x0001010D
  98. #define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E
  99. #define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F
  100. #define OID_GEN_DRIVER_VERSION 0x00010110
  101. #define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
  102. #define OID_GEN_PROTOCOL_OPTIONS 0x00010112
  103. #define OID_GEN_MAC_OPTIONS 0x00010113
  104. #define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
  105. #define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115
  106. //
  107. // Optional OIDs
  108. //
  109. #define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
  110. #define OID_GEN_SUPPORTED_GUIDS 0x00010117
  111. #define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 // Set only
  112. #define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 // Set only
  113. #define OID_GEN_MACHINE_NAME 0x0001021A
  114. #define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B // Set only
  115. #define OID_GEN_VLAN_ID 0x0001021C
  116. #define OID_GEN_MEDIA_CAPABILITIES 0x00010201
  117. #define OID_GEN_PHYSICAL_MEDIUM 0x00010202
  118. #if NDIS_RECV_SCALE
  119. #define OID_GEN_RECEIVE_SCALE_CAPABILITIES 0x00010203 // query only
  120. #define OID_GEN_RECEIVE_SCALE_PARAMETERS 0x00010204 // query and set
  121. #endif
  122. //
  123. // Required statistics
  124. //
  125. #define OID_GEN_XMIT_OK 0x00020101
  126. #define OID_GEN_RCV_OK 0x00020102
  127. #define OID_GEN_XMIT_ERROR 0x00020103
  128. #define OID_GEN_RCV_ERROR 0x00020104
  129. #define OID_GEN_RCV_NO_BUFFER 0x00020105
  130. //
  131. // Optional statistics
  132. //
  133. #define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
  134. #define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
  135. #define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
  136. #define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
  137. #define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
  138. #define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
  139. #define OID_GEN_DIRECTED_BYTES_RCV 0x00020207
  140. #define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
  141. #define OID_GEN_MULTICAST_BYTES_RCV 0x00020209
  142. #define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A
  143. #define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B
  144. #define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C
  145. #define OID_GEN_RCV_CRC_ERROR 0x0002020D
  146. #define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E
  147. #define OID_GEN_GET_TIME_CAPS 0x0002020F
  148. #define OID_GEN_GET_NETCARD_TIME 0x00020210
  149. #define OID_GEN_NETCARD_LOAD 0x00020211
  150. #define OID_GEN_DEVICE_PROFILE 0x00020212
  151. //
  152. // The following is exported by NDIS itself and is only queryable. It returns
  153. // the time in milliseconds a driver took to initialize.
  154. //
  155. #define OID_GEN_INIT_TIME_MS 0x00020213
  156. #define OID_GEN_RESET_COUNTS 0x00020214
  157. #define OID_GEN_MEDIA_SENSE_COUNTS 0x00020215
  158. #define OID_GEN_FRIENDLY_NAME 0x00020216
  159. #define OID_GEN_MINIPORT_INFO 0x00020217
  160. #define OID_GEN_RESET_VERIFY_PARAMETERS 0x00020218
  161. //
  162. // These are connection-oriented general OIDs.
  163. // These replace the above OIDs for connection-oriented media.
  164. //
  165. #define OID_GEN_CO_SUPPORTED_LIST OID_GEN_SUPPORTED_LIST
  166. #define OID_GEN_CO_HARDWARE_STATUS OID_GEN_HARDWARE_STATUS
  167. #define OID_GEN_CO_MEDIA_SUPPORTED OID_GEN_MEDIA_SUPPORTED
  168. #define OID_GEN_CO_MEDIA_IN_USE OID_GEN_MEDIA_IN_USE
  169. #define OID_GEN_CO_LINK_SPEED OID_GEN_LINK_SPEED
  170. #define OID_GEN_CO_VENDOR_ID OID_GEN_VENDOR_ID
  171. #define OID_GEN_CO_VENDOR_DESCRIPTION OID_GEN_VENDOR_DESCRIPTION
  172. #define OID_GEN_CO_DRIVER_VERSION OID_GEN_DRIVER_VERSION
  173. #define OID_GEN_CO_PROTOCOL_OPTIONS OID_GEN_PROTOCOL_OPTIONS
  174. #define OID_GEN_CO_MAC_OPTIONS OID_GEN_MAC_OPTIONS
  175. #define OID_GEN_CO_MEDIA_CONNECT_STATUS OID_GEN_MEDIA_CONNECT_STATUS
  176. #define OID_GEN_CO_VENDOR_DRIVER_VERSION OID_GEN_VENDOR_DRIVER_VERSION
  177. #define OID_GEN_CO_SUPPORTED_GUIDS OID_GEN_SUPPORTED_GUIDS
  178. #define OID_GEN_CO_GET_TIME_CAPS OID_GEN_GET_TIME_CAPS
  179. #define OID_GEN_CO_GET_NETCARD_TIME OID_GEN_GET_NETCARD_TIME
  180. #define OID_GEN_CO_MINIMUM_LINK_SPEED 0x00020120
  181. //
  182. // These are connection-oriented statistics OIDs.
  183. //
  184. #define OID_GEN_CO_XMIT_PDUS_OK OID_GEN_XMIT_OK
  185. #define OID_GEN_CO_RCV_PDUS_OK OID_GEN_RCV_OK
  186. #define OID_GEN_CO_XMIT_PDUS_ERROR OID_GEN_XMIT_ERROR
  187. #define OID_GEN_CO_RCV_PDUS_ERROR OID_GEN_RCV_ERROR
  188. #define OID_GEN_CO_RCV_PDUS_NO_BUFFER OID_GEN_RCV_NO_BUFFER
  189. #define OID_GEN_CO_RCV_CRC_ERROR OID_GEN_RCV_CRC_ERROR
  190. #define OID_GEN_CO_TRANSMIT_QUEUE_LENGTH OID_GEN_TRANSMIT_QUEUE_LENGTH
  191. #define OID_GEN_CO_BYTES_XMIT OID_GEN_DIRECTED_BYTES_XMIT
  192. #define OID_GEN_CO_BYTES_RCV OID_GEN_DIRECTED_BYTES_RCV
  193. #define OID_GEN_CO_NETCARD_LOAD OID_GEN_NETCARD_LOAD
  194. #define OID_GEN_CO_DEVICE_PROFILE OID_GEN_DEVICE_PROFILE
  195. #define OID_GEN_CO_BYTES_XMIT_OUTSTANDING 0x00020221
  196. //
  197. // 802.3 Objects (Ethernet)
  198. //
  199. #define OID_802_3_PERMANENT_ADDRESS 0x01010101
  200. #define OID_802_3_CURRENT_ADDRESS 0x01010102
  201. #define OID_802_3_MULTICAST_LIST 0x01010103
  202. #define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104
  203. #define OID_802_3_MAC_OPTIONS 0x01010105
  204. #define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001
  205. #define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101
  206. #define OID_802_3_XMIT_ONE_COLLISION 0x01020102
  207. #define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103
  208. #define OID_802_3_XMIT_DEFERRED 0x01020201
  209. #define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202
  210. #define OID_802_3_RCV_OVERRUN 0x01020203
  211. #define OID_802_3_XMIT_UNDERRUN 0x01020204
  212. #define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205
  213. #define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206
  214. #define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207
  215. //
  216. // 802.5 Objects (Token-Ring)
  217. //
  218. #define OID_802_5_PERMANENT_ADDRESS 0x02010101
  219. #define OID_802_5_CURRENT_ADDRESS 0x02010102
  220. #define OID_802_5_CURRENT_FUNCTIONAL 0x02010103
  221. #define OID_802_5_CURRENT_GROUP 0x02010104
  222. #define OID_802_5_LAST_OPEN_STATUS 0x02010105
  223. #define OID_802_5_CURRENT_RING_STATUS 0x02010106
  224. #define OID_802_5_CURRENT_RING_STATE 0x02010107
  225. #define OID_802_5_LINE_ERRORS 0x02020101
  226. #define OID_802_5_LOST_FRAMES 0x02020102
  227. #define OID_802_5_BURST_ERRORS 0x02020201
  228. #define OID_802_5_AC_ERRORS 0x02020202
  229. #define OID_802_5_ABORT_DELIMETERS 0x02020203
  230. #define OID_802_5_FRAME_COPIED_ERRORS 0x02020204
  231. #define OID_802_5_FREQUENCY_ERRORS 0x02020205
  232. #define OID_802_5_TOKEN_ERRORS 0x02020206
  233. #define OID_802_5_INTERNAL_ERRORS 0x02020207
  234. //
  235. // FDDI Objects
  236. //
  237. #define OID_FDDI_LONG_PERMANENT_ADDR 0x03010101
  238. #define OID_FDDI_LONG_CURRENT_ADDR 0x03010102
  239. #define OID_FDDI_LONG_MULTICAST_LIST 0x03010103
  240. #define OID_FDDI_LONG_MAX_LIST_SIZE 0x03010104
  241. #define OID_FDDI_SHORT_PERMANENT_ADDR 0x03010105
  242. #define OID_FDDI_SHORT_CURRENT_ADDR 0x03010106
  243. #define OID_FDDI_SHORT_MULTICAST_LIST 0x03010107
  244. #define OID_FDDI_SHORT_MAX_LIST_SIZE 0x03010108
  245. #define OID_FDDI_ATTACHMENT_TYPE 0x03020101
  246. #define OID_FDDI_UPSTREAM_NODE_LONG 0x03020102
  247. #define OID_FDDI_DOWNSTREAM_NODE_LONG 0x03020103
  248. #define OID_FDDI_FRAME_ERRORS 0x03020104
  249. #define OID_FDDI_FRAMES_LOST 0x03020105
  250. #define OID_FDDI_RING_MGT_STATE 0x03020106
  251. #define OID_FDDI_LCT_FAILURES 0x03020107
  252. #define OID_FDDI_LEM_REJECTS 0x03020108
  253. #define OID_FDDI_LCONNECTION_STATE 0x03020109
  254. #define OID_FDDI_SMT_STATION_ID 0x03030201
  255. #define OID_FDDI_SMT_OP_VERSION_ID 0x03030202
  256. #define OID_FDDI_SMT_HI_VERSION_ID 0x03030203
  257. #define OID_FDDI_SMT_LO_VERSION_ID 0x03030204
  258. #define OID_FDDI_SMT_MANUFACTURER_DATA 0x03030205
  259. #define OID_FDDI_SMT_USER_DATA 0x03030206
  260. #define OID_FDDI_SMT_MIB_VERSION_ID 0x03030207
  261. #define OID_FDDI_SMT_MAC_CT 0x03030208
  262. #define OID_FDDI_SMT_NON_MASTER_CT 0x03030209
  263. #define OID_FDDI_SMT_MASTER_CT 0x0303020A
  264. #define OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020B
  265. #define OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020C
  266. #define OID_FDDI_SMT_CONFIG_POLICY 0x0303020D
  267. #define OID_FDDI_SMT_CONNECTION_POLICY 0x0303020E
  268. #define OID_FDDI_SMT_T_NOTIFY 0x0303020F
  269. #define OID_FDDI_SMT_STAT_RPT_POLICY 0x03030210
  270. #define OID_FDDI_SMT_TRACE_MAX_EXPIRATION 0x03030211
  271. #define OID_FDDI_SMT_PORT_INDEXES 0x03030212
  272. #define OID_FDDI_SMT_MAC_INDEXES 0x03030213
  273. #define OID_FDDI_SMT_BYPASS_PRESENT 0x03030214
  274. #define OID_FDDI_SMT_ECM_STATE 0x03030215
  275. #define OID_FDDI_SMT_CF_STATE 0x03030216
  276. #define OID_FDDI_SMT_HOLD_STATE 0x03030217
  277. #define OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG 0x03030218
  278. #define OID_FDDI_SMT_STATION_STATUS 0x03030219
  279. #define OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021A
  280. #define OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021B
  281. #define OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021C
  282. #define OID_FDDI_SMT_SET_COUNT 0x0303021D
  283. #define OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021E
  284. #define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021F
  285. #define OID_FDDI_MAC_BRIDGE_FUNCTIONS 0x03030220
  286. #define OID_FDDI_MAC_T_MAX_CAPABILITY 0x03030221
  287. #define OID_FDDI_MAC_TVX_CAPABILITY 0x03030222
  288. #define OID_FDDI_MAC_AVAILABLE_PATHS 0x03030223
  289. #define OID_FDDI_MAC_CURRENT_PATH 0x03030224
  290. #define OID_FDDI_MAC_UPSTREAM_NBR 0x03030225
  291. #define OID_FDDI_MAC_DOWNSTREAM_NBR 0x03030226
  292. #define OID_FDDI_MAC_OLD_UPSTREAM_NBR 0x03030227
  293. #define OID_FDDI_MAC_OLD_DOWNSTREAM_NBR 0x03030228
  294. #define OID_FDDI_MAC_DUP_ADDRESS_TEST 0x03030229
  295. #define OID_FDDI_MAC_REQUESTED_PATHS 0x0303022A
  296. #define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022B
  297. #define OID_FDDI_MAC_INDEX 0x0303022C
  298. #define OID_FDDI_MAC_SMT_ADDRESS 0x0303022D
  299. #define OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022E
  300. #define OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022F
  301. #define OID_FDDI_MAC_T_REQ 0x03030230
  302. #define OID_FDDI_MAC_T_NEG 0x03030231
  303. #define OID_FDDI_MAC_T_MAX 0x03030232
  304. #define OID_FDDI_MAC_TVX_VALUE 0x03030233
  305. #define OID_FDDI_MAC_T_PRI0 0x03030234
  306. #define OID_FDDI_MAC_T_PRI1 0x03030235
  307. #define OID_FDDI_MAC_T_PRI2 0x03030236
  308. #define OID_FDDI_MAC_T_PRI3 0x03030237
  309. #define OID_FDDI_MAC_T_PRI4 0x03030238
  310. #define OID_FDDI_MAC_T_PRI5 0x03030239
  311. #define OID_FDDI_MAC_T_PRI6 0x0303023A
  312. #define OID_FDDI_MAC_FRAME_CT 0x0303023B
  313. #define OID_FDDI_MAC_COPIED_CT 0x0303023C
  314. #define OID_FDDI_MAC_TRANSMIT_CT 0x0303023D
  315. #define OID_FDDI_MAC_TOKEN_CT 0x0303023E
  316. #define OID_FDDI_MAC_ERROR_CT 0x0303023F
  317. #define OID_FDDI_MAC_LOST_CT 0x03030240
  318. #define OID_FDDI_MAC_TVX_EXPIRED_CT 0x03030241
  319. #define OID_FDDI_MAC_NOT_COPIED_CT 0x03030242
  320. #define OID_FDDI_MAC_LATE_CT 0x03030243
  321. #define OID_FDDI_MAC_RING_OP_CT 0x03030244
  322. #define OID_FDDI_MAC_FRAME_ERROR_THRESHOLD 0x03030245
  323. #define OID_FDDI_MAC_FRAME_ERROR_RATIO 0x03030246
  324. #define OID_FDDI_MAC_NOT_COPIED_THRESHOLD 0x03030247
  325. #define OID_FDDI_MAC_NOT_COPIED_RATIO 0x03030248
  326. #define OID_FDDI_MAC_RMT_STATE 0x03030249
  327. #define OID_FDDI_MAC_DA_FLAG 0x0303024A
  328. #define OID_FDDI_MAC_UNDA_FLAG 0x0303024B
  329. #define OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024C
  330. #define OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024D
  331. #define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024E
  332. #define OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024F
  333. #define OID_FDDI_MAC_MA_UNITDATA_ENABLE 0x03030250
  334. #define OID_FDDI_PATH_INDEX 0x03030251
  335. #define OID_FDDI_PATH_RING_LATENCY 0x03030252
  336. #define OID_FDDI_PATH_TRACE_STATUS 0x03030253
  337. #define OID_FDDI_PATH_SBA_PAYLOAD 0x03030254
  338. #define OID_FDDI_PATH_SBA_OVERHEAD 0x03030255
  339. #define OID_FDDI_PATH_CONFIGURATION 0x03030256
  340. #define OID_FDDI_PATH_T_R_MODE 0x03030257
  341. #define OID_FDDI_PATH_SBA_AVAILABLE 0x03030258
  342. #define OID_FDDI_PATH_TVX_LOWER_BOUND 0x03030259
  343. #define OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025A
  344. #define OID_FDDI_PATH_MAX_T_REQ 0x0303025B
  345. #define OID_FDDI_PORT_MY_TYPE 0x0303025C
  346. #define OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025D
  347. #define OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025E
  348. #define OID_FDDI_PORT_MAC_INDICATED 0x0303025F
  349. #define OID_FDDI_PORT_CURRENT_PATH 0x03030260
  350. #define OID_FDDI_PORT_REQUESTED_PATHS 0x03030261
  351. #define OID_FDDI_PORT_MAC_PLACEMENT 0x03030262
  352. #define OID_FDDI_PORT_AVAILABLE_PATHS 0x03030263
  353. #define OID_FDDI_PORT_MAC_LOOP_TIME 0x03030264
  354. #define OID_FDDI_PORT_PMD_CLASS 0x03030265
  355. #define OID_FDDI_PORT_CONNECTION_CAPABILITIES 0x03030266
  356. #define OID_FDDI_PORT_INDEX 0x03030267
  357. #define OID_FDDI_PORT_MAINT_LS 0x03030268
  358. #define OID_FDDI_PORT_BS_FLAG 0x03030269
  359. #define OID_FDDI_PORT_PC_LS 0x0303026A
  360. #define OID_FDDI_PORT_EB_ERROR_CT 0x0303026B
  361. #define OID_FDDI_PORT_LCT_FAIL_CT 0x0303026C
  362. #define OID_FDDI_PORT_LER_ESTIMATE 0x0303026D
  363. #define OID_FDDI_PORT_LEM_REJECT_CT 0x0303026E
  364. #define OID_FDDI_PORT_LEM_CT 0x0303026F
  365. #define OID_FDDI_PORT_LER_CUTOFF 0x03030270
  366. #define OID_FDDI_PORT_LER_ALARM 0x03030271
  367. #define OID_FDDI_PORT_CONNNECT_STATE 0x03030272
  368. #define OID_FDDI_PORT_PCM_STATE 0x03030273
  369. #define OID_FDDI_PORT_PC_WITHHOLD 0x03030274
  370. #define OID_FDDI_PORT_LER_FLAG 0x03030275
  371. #define OID_FDDI_PORT_HARDWARE_PRESENT 0x03030276
  372. #define OID_FDDI_SMT_STATION_ACTION 0x03030277
  373. #define OID_FDDI_PORT_ACTION 0x03030278
  374. #define OID_FDDI_IF_DESCR 0x03030279
  375. #define OID_FDDI_IF_TYPE 0x0303027A
  376. #define OID_FDDI_IF_MTU 0x0303027B
  377. #define OID_FDDI_IF_SPEED 0x0303027C
  378. #define OID_FDDI_IF_PHYS_ADDRESS 0x0303027D
  379. #define OID_FDDI_IF_ADMIN_STATUS 0x0303027E
  380. #define OID_FDDI_IF_OPER_STATUS 0x0303027F
  381. #define OID_FDDI_IF_LAST_CHANGE 0x03030280
  382. #define OID_FDDI_IF_IN_OCTETS 0x03030281
  383. #define OID_FDDI_IF_IN_UCAST_PKTS 0x03030282
  384. #define OID_FDDI_IF_IN_NUCAST_PKTS 0x03030283
  385. #define OID_FDDI_IF_IN_DISCARDS 0x03030284
  386. #define OID_FDDI_IF_IN_ERRORS 0x03030285
  387. #define OID_FDDI_IF_IN_UNKNOWN_PROTOS 0x03030286
  388. #define OID_FDDI_IF_OUT_OCTETS 0x03030287
  389. #define OID_FDDI_IF_OUT_UCAST_PKTS 0x03030288
  390. #define OID_FDDI_IF_OUT_NUCAST_PKTS 0x03030289
  391. #define OID_FDDI_IF_OUT_DISCARDS 0x0303028A
  392. #define OID_FDDI_IF_OUT_ERRORS 0x0303028B
  393. #define OID_FDDI_IF_OUT_QLEN 0x0303028C
  394. #define OID_FDDI_IF_SPECIFIC 0x0303028D
  395. //
  396. // WAN objects
  397. //
  398. #define OID_WAN_PERMANENT_ADDRESS 0x04010101
  399. #define OID_WAN_CURRENT_ADDRESS 0x04010102
  400. #define OID_WAN_QUALITY_OF_SERVICE 0x04010103
  401. #define OID_WAN_PROTOCOL_TYPE 0x04010104
  402. #define OID_WAN_MEDIUM_SUBTYPE 0x04010105
  403. #define OID_WAN_HEADER_FORMAT 0x04010106
  404. #define OID_WAN_GET_INFO 0x04010107
  405. #define OID_WAN_SET_LINK_INFO 0x04010108
  406. #define OID_WAN_GET_LINK_INFO 0x04010109
  407. #define OID_WAN_LINE_COUNT 0x0401010A
  408. #define OID_WAN_PROTOCOL_CAPS 0x0401010B
  409. #define OID_WAN_GET_BRIDGE_INFO 0x0401020A
  410. #define OID_WAN_SET_BRIDGE_INFO 0x0401020B
  411. #define OID_WAN_GET_COMP_INFO 0x0401020C
  412. #define OID_WAN_SET_COMP_INFO 0x0401020D
  413. #define OID_WAN_GET_STATS_INFO 0x0401020E
  414. //
  415. // These are connection-oriented WAN OIDs.
  416. // These replace the above OIDs for CoNDIS WAN Miniports
  417. //
  418. #define OID_WAN_CO_GET_INFO 0x04010180
  419. #define OID_WAN_CO_SET_LINK_INFO 0x04010181
  420. #define OID_WAN_CO_GET_LINK_INFO 0x04010182
  421. #define OID_WAN_CO_GET_COMP_INFO 0x04010280
  422. #define OID_WAN_CO_SET_COMP_INFO 0x04010281
  423. #define OID_WAN_CO_GET_STATS_INFO 0x04010282
  424. //
  425. // LocalTalk objects
  426. //
  427. #define OID_LTALK_CURRENT_NODE_ID 0x05010102
  428. #define OID_LTALK_IN_BROADCASTS 0x05020101
  429. #define OID_LTALK_IN_LENGTH_ERRORS 0x05020102
  430. #define OID_LTALK_OUT_NO_HANDLERS 0x05020201
  431. #define OID_LTALK_COLLISIONS 0x05020202
  432. #define OID_LTALK_DEFERS 0x05020203
  433. #define OID_LTALK_NO_DATA_ERRORS 0x05020204
  434. #define OID_LTALK_RANDOM_CTS_ERRORS 0x05020205
  435. #define OID_LTALK_FCS_ERRORS 0x05020206
  436. //
  437. // Arcnet objects
  438. //
  439. #define OID_ARCNET_PERMANENT_ADDRESS 0x06010101
  440. #define OID_ARCNET_CURRENT_ADDRESS 0x06010102
  441. #define OID_ARCNET_RECONFIGURATIONS 0x06020201
  442. //
  443. // TAPI objects
  444. //
  445. #define OID_TAPI_ACCEPT 0x07030101
  446. #define OID_TAPI_ANSWER 0x07030102
  447. #define OID_TAPI_CLOSE 0x07030103
  448. #define OID_TAPI_CLOSE_CALL 0x07030104
  449. #define OID_TAPI_CONDITIONAL_MEDIA_DETECTION 0x07030105
  450. #define OID_TAPI_CONFIG_DIALOG 0x07030106
  451. #define OID_TAPI_DEV_SPECIFIC 0x07030107
  452. #define OID_TAPI_DIAL 0x07030108
  453. #define OID_TAPI_DROP 0x07030109
  454. #define OID_TAPI_GET_ADDRESS_CAPS 0x0703010A
  455. #define OID_TAPI_GET_ADDRESS_ID 0x0703010B
  456. #define OID_TAPI_GET_ADDRESS_STATUS 0x0703010C
  457. #define OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010D
  458. #define OID_TAPI_GET_CALL_INFO 0x0703010E
  459. #define OID_TAPI_GET_CALL_STATUS 0x0703010F
  460. #define OID_TAPI_GET_DEV_CAPS 0x07030110
  461. #define OID_TAPI_GET_DEV_CONFIG 0x07030111
  462. #define OID_TAPI_GET_EXTENSION_ID 0x07030112
  463. #define OID_TAPI_GET_ID 0x07030113
  464. #define OID_TAPI_GET_LINE_DEV_STATUS 0x07030114
  465. #define OID_TAPI_MAKE_CALL 0x07030115
  466. #define OID_TAPI_NEGOTIATE_EXT_VERSION 0x07030116
  467. #define OID_TAPI_OPEN 0x07030117
  468. #define OID_TAPI_PROVIDER_INITIALIZE 0x07030118
  469. #define OID_TAPI_PROVIDER_SHUTDOWN 0x07030119
  470. #define OID_TAPI_SECURE_CALL 0x0703011A
  471. #define OID_TAPI_SELECT_EXT_VERSION 0x0703011B
  472. #define OID_TAPI_SEND_USER_USER_INFO 0x0703011C
  473. #define OID_TAPI_SET_APP_SPECIFIC 0x0703011D
  474. #define OID_TAPI_SET_CALL_PARAMS 0x0703011E
  475. #define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011F
  476. #define OID_TAPI_SET_DEV_CONFIG 0x07030120
  477. #define OID_TAPI_SET_MEDIA_MODE 0x07030121
  478. #define OID_TAPI_SET_STATUS_MESSAGES 0x07030122
  479. #define OID_TAPI_GATHER_DIGITS 0x07030123
  480. #define OID_TAPI_MONITOR_DIGITS 0x07030124
  481. //
  482. // ATM Connection Oriented OIDs
  483. //
  484. #define OID_ATM_SUPPORTED_VC_RATES 0x08010101
  485. #define OID_ATM_SUPPORTED_SERVICE_CATEGORY 0x08010102
  486. #define OID_ATM_SUPPORTED_AAL_TYPES 0x08010103
  487. #define OID_ATM_HW_CURRENT_ADDRESS 0x08010104
  488. #define OID_ATM_MAX_ACTIVE_VCS 0x08010105
  489. #define OID_ATM_MAX_ACTIVE_VCI_BITS 0x08010106
  490. #define OID_ATM_MAX_ACTIVE_VPI_BITS 0x08010107
  491. #define OID_ATM_MAX_AAL0_PACKET_SIZE 0x08010108
  492. #define OID_ATM_MAX_AAL1_PACKET_SIZE 0x08010109
  493. #define OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010A
  494. #define OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010B
  495. #define OID_ATM_SIGNALING_VPIVCI 0x08010201
  496. #define OID_ATM_ASSIGNED_VPI 0x08010202
  497. #define OID_ATM_ACQUIRE_ACCESS_NET_RESOURCES 0x08010203
  498. #define OID_ATM_RELEASE_ACCESS_NET_RESOURCES 0x08010204
  499. #define OID_ATM_ILMI_VPIVCI 0x08010205
  500. #define OID_ATM_DIGITAL_BROADCAST_VPIVCI 0x08010206
  501. #define OID_ATM_GET_NEAREST_FLOW 0x08010207
  502. #define OID_ATM_ALIGNMENT_REQUIRED 0x08010208
  503. #define OID_ATM_LECS_ADDRESS 0x08010209
  504. #define OID_ATM_SERVICE_ADDRESS 0x0801020A
  505. #define OID_ATM_CALL_PROCEEDING 0x0801020B // UNI 4.0
  506. #define OID_ATM_CALL_ALERTING 0x0801020C // UNI 4.0
  507. #define OID_ATM_PARTY_ALERTING 0x0801020D // UNI 4.0
  508. #define OID_ATM_CALL_NOTIFY 0x0801020E // UNI 4.0
  509. #define OID_ATM_MY_IP_NM_ADDRESS 0x0801020F
  510. //
  511. // ATM specific statistics OIDs.
  512. //
  513. #define OID_ATM_RCV_CELLS_OK 0x08020101
  514. #define OID_ATM_XMIT_CELLS_OK 0x08020102
  515. #define OID_ATM_RCV_CELLS_DROPPED 0x08020103
  516. #define OID_ATM_RCV_INVALID_VPI_VCI 0x08020201
  517. #define OID_ATM_CELLS_HEC_ERROR 0x08020202
  518. #define OID_ATM_RCV_REASSEMBLY_ERROR 0x08020203
  519. //
  520. // PCCA (Wireless) object
  521. //
  522. //
  523. // All WirelessWAN devices must support the following OIDs
  524. //
  525. #define OID_WW_GEN_NETWORK_TYPES_SUPPORTED 0x09010101
  526. #define OID_WW_GEN_NETWORK_TYPE_IN_USE 0x09010102
  527. #define OID_WW_GEN_HEADER_FORMATS_SUPPORTED 0x09010103
  528. #define OID_WW_GEN_HEADER_FORMAT_IN_USE 0x09010104
  529. #define OID_WW_GEN_INDICATION_REQUEST 0x09010105
  530. #define OID_WW_GEN_DEVICE_INFO 0x09010106
  531. #define OID_WW_GEN_OPERATION_MODE 0x09010107
  532. #define OID_WW_GEN_LOCK_STATUS 0x09010108
  533. #define OID_WW_GEN_DISABLE_TRANSMITTER 0x09010109
  534. #define OID_WW_GEN_NETWORK_ID 0x0901010A
  535. #define OID_WW_GEN_PERMANENT_ADDRESS 0x0901010B
  536. #define OID_WW_GEN_CURRENT_ADDRESS 0x0901010C
  537. #define OID_WW_GEN_SUSPEND_DRIVER 0x0901010D
  538. #define OID_WW_GEN_BASESTATION_ID 0x0901010E
  539. #define OID_WW_GEN_CHANNEL_ID 0x0901010F
  540. #define OID_WW_GEN_ENCRYPTION_SUPPORTED 0x09010110
  541. #define OID_WW_GEN_ENCRYPTION_IN_USE 0x09010111
  542. #define OID_WW_GEN_ENCRYPTION_STATE 0x09010112
  543. #define OID_WW_GEN_CHANNEL_QUALITY 0x09010113
  544. #define OID_WW_GEN_REGISTRATION_STATUS 0x09010114
  545. #define OID_WW_GEN_RADIO_LINK_SPEED 0x09010115
  546. #define OID_WW_GEN_LATENCY 0x09010116
  547. #define OID_WW_GEN_BATTERY_LEVEL 0x09010117
  548. #define OID_WW_GEN_EXTERNAL_POWER 0x09010118
  549. //
  550. // These are optional
  551. //
  552. #define OID_WW_GEN_PING_ADDRESS 0x09010201
  553. #define OID_WW_GEN_RSSI 0x09010202
  554. #define OID_WW_GEN_SIM_STATUS 0x09010203
  555. #define OID_WW_GEN_ENABLE_SIM_PIN 0x09010204
  556. #define OID_WW_GEN_CHANGE_SIM_PIN 0x09010205
  557. #define OID_WW_GEN_SIM_PUK 0x09010206
  558. #define OID_WW_GEN_SIM_EXCEPTION 0x09010207
  559. //
  560. // Network Dependent OIDs - Mobitex:
  561. //
  562. #define OID_WW_MBX_SUBADDR 0x09050101
  563. // OID 0x09050102 is reserved and may not be used
  564. #define OID_WW_MBX_FLEXLIST 0x09050103
  565. #define OID_WW_MBX_GROUPLIST 0x09050104
  566. #define OID_WW_MBX_TRAFFIC_AREA 0x09050105
  567. #define OID_WW_MBX_LIVE_DIE 0x09050106
  568. #define OID_WW_MBX_TEMP_DEFAULTLIST 0x09050107
  569. //
  570. // Network Dependent OIDs - Pinpoint:
  571. //
  572. //
  573. // The following Pin Point characteristics have been deprecated by the
  574. // PCCA and are considered reserved values. They are include here only for
  575. // historical purposes and should not be used
  576. //
  577. #define OID_WW_PIN_LOC_AUTHORIZE 0x09090101
  578. #define OID_WW_PIN_LAST_LOCATION 0x09090102
  579. #define OID_WW_PIN_LOC_FIX 0x09090103
  580. //
  581. // Network Dependent - CDPD:
  582. //
  583. #define OID_WW_CDPD_SPNI 0x090D0101
  584. #define OID_WW_CDPD_WASI 0x090D0102
  585. #define OID_WW_CDPD_AREA_COLOR 0x090D0103
  586. #define OID_WW_CDPD_TX_POWER_LEVEL 0x090D0104
  587. #define OID_WW_CDPD_EID 0x090D0105
  588. #define OID_WW_CDPD_HEADER_COMPRESSION 0x090D0106
  589. #define OID_WW_CDPD_DATA_COMPRESSION 0x090D0107
  590. #define OID_WW_CDPD_CHANNEL_SELECT 0x090D0108
  591. #define OID_WW_CDPD_CHANNEL_STATE 0x090D0109
  592. #define OID_WW_CDPD_NEI 0x090D010A
  593. #define OID_WW_CDPD_NEI_STATE 0x090D010B
  594. #define OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER 0x090D010C
  595. #define OID_WW_CDPD_SLEEP_MODE 0x090D010D
  596. //
  597. // At the request of the PCCA STD-201 Annex C working group the following OID
  598. // value has been superceeded by more specific objects. Its value is reserved by
  599. // the PCCA,is included here for historical purposes only, and should not be
  600. // used.
  601. //
  602. #define OID_WW_CDPD_CIRCUIT_SWITCHED 0x090D010E
  603. #define OID_WW_CDPD_TEI 0x090D010F
  604. #define OID_WW_CDPD_RSSI 0x090D0110
  605. //
  606. // CDPD Circuit Switched objects
  607. //
  608. #define OID_WW_CDPD_CS_SERVICE_PREFERENCE 0x090D0111
  609. #define OID_WW_CDPD_CS_SERVICE_STATUS 0x090D0112
  610. #define OID_WW_CDPD_CS_INFO 0x090D0113
  611. #define OID_WW_CDPD_CS_SUSPEND 0x090D0114
  612. #define OID_WW_CDPD_CS_DEFAULT_DIAL_CODE 0x090D0115
  613. #define OID_WW_CDPD_CS_CALLBACK 0x090D0116
  614. #define OID_WW_CDPD_CS_SID_LIST 0x090D0117
  615. #define OID_WW_CDPD_CS_CONFIGURATION 0x090D0118
  616. //
  617. // Network Dependent - Ardis:
  618. //
  619. //
  620. // At the request of Ardis these OID value have been superceeded. Their
  621. // functionality has been merged with the DataTAC objects. Therefore
  622. // these values are reserved by the PCCA, are include here for
  623. // historical purposes only, and should not be used.
  624. //
  625. #define OID_WW_ARD_SNDCP 0x09110101
  626. #define OID_WW_ARD_TMLY_MSG 0x09110102
  627. #define OID_WW_ARD_DATAGRAM 0x09110103
  628. //
  629. // Network Dependent - DataTac:
  630. //
  631. #define OID_WW_TAC_COMPRESSION 0x09150101
  632. //
  633. // At the request of Motorola, the following two OID values have been
  634. // superceeded. Their functionality has been subsumed by other more specific
  635. // DataTac objects and should not be used. These values are reserved by the
  636. // PCCA and are include here only for historical purposes only.
  637. //
  638. #define OID_WW_TAC_SET_CONFIG 0x09150102
  639. #define OID_WW_TAC_GET_STATUS 0x09150103
  640. #define OID_WW_TAC_USER_HEADER 0x09150104
  641. //
  642. // DataTAC characteristic object values
  643. //
  644. #define OID_WW_TAC_UNIQUE_SDU_TAG 0x09150105
  645. #define OID_WW_TAC_SEND_COMMAND 0x09150106
  646. #define OID_WW_TAC_GET_RESPONSE 0x09150107
  647. #define OID_WW_TAC_DISABLE_RECEIVER 0x09150108
  648. #define OID_WW_TAC_ANTENNA_MODE 0x09150109
  649. #define OID_WW_TAC_FLUSH_DATA 0x0915010A
  650. #define OID_WW_TAC_SHUTDOWN_DEVICE 0x0915010B
  651. #define OID_WW_TAC_DEVICE_EXCEPTION 0x0915010C
  652. #define OID_WW_TAC_RECEIVE_EXCEPTION 0x0915010D
  653. #define OID_WW_TAC_BUFFER_EXCEPTION 0x0915010E
  654. #define OID_WW_TAC_BATTERY_EXCEPTION 0x0915010F
  655. #define OID_WW_TAC_TRANSMITTER_KEYED 0x09150110
  656. #define OID_WW_TAC_SYSTEM_TABLE 0x09150111
  657. #define OID_WW_TAC_CHANNEL_TABLE 0x09150112
  658. #define OID_WW_TAC_DCHANNEL_TABLE 0x09150113
  659. #define OID_WW_TAC_RECEIVE_QUEUE_COUNT 0x09150114
  660. //
  661. // DataTac statistic object value
  662. //
  663. #define OID_WW_TAC_STATISTICS 0x09160101
  664. //
  665. // Network Dependent - Metricom:
  666. //
  667. #define OID_WW_MET_FUNCTION 0x09190101
  668. //
  669. // IEEE 802.11 OIDs
  670. //
  671. #define OID_802_11_BSSID 0x0D010101
  672. #define OID_802_11_SSID 0x0D010102
  673. #define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203
  674. #define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204
  675. #define OID_802_11_TX_POWER_LEVEL 0x0D010205
  676. #define OID_802_11_RSSI 0x0D010206
  677. #define OID_802_11_RSSI_TRIGGER 0x0D010207
  678. #define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108
  679. #define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209
  680. #define OID_802_11_RTS_THRESHOLD 0x0D01020A
  681. #define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B
  682. #define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C
  683. #define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D
  684. #define OID_802_11_SUPPORTED_RATES 0x0D01020E
  685. #define OID_802_11_DESIRED_RATES 0x0D010210
  686. #define OID_802_11_CONFIGURATION 0x0D010211
  687. #define OID_802_11_STATISTICS 0x0D020212
  688. #define OID_802_11_ADD_WEP 0x0D010113
  689. #define OID_802_11_REMOVE_WEP 0x0D010114
  690. #define OID_802_11_DISASSOCIATE 0x0D010115
  691. #define OID_802_11_POWER_MODE 0x0D010216
  692. #define OID_802_11_BSSID_LIST 0x0D010217
  693. #define OID_802_11_AUTHENTICATION_MODE 0x0D010118
  694. #define OID_802_11_PRIVACY_FILTER 0x0D010119
  695. #define OID_802_11_BSSID_LIST_SCAN 0x0D01011A
  696. #define OID_802_11_WEP_STATUS 0x0D01011B
  697. #define OID_802_11_RELOAD_DEFAULTS 0x0D01011C
  698. //
  699. // IEEE 802.11 Structures and definitions
  700. //
  701. typedef enum _NDIS_802_11_NETWORK_TYPE
  702. {
  703. Ndis802_11FH,
  704. Ndis802_11DS,
  705. Ndis802_11NetworkTypeMax // not a real type, defined as an upper bound
  706. } NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE;
  707. typedef struct _NDIS_802_11_NETWORK_TYPE_LIST
  708. {
  709. ULONG NumberOfItems; // in list below, at least 1
  710. NDIS_802_11_NETWORK_TYPE NetworkType [1];
  711. } NDIS_802_11_NETWORK_TYPE_LIST, *PNDIS_802_11_NETWORK_TYPE_LIST;
  712. typedef enum _NDIS_802_11_POWER_MODE
  713. {
  714. Ndis802_11PowerModeCAM,
  715. Ndis802_11PowerModeMAX_PSP,
  716. Ndis802_11PowerModeFast_PSP,
  717. Ndis802_11PowerModeMax // not a real mode, defined as an upper bound
  718. } NDIS_802_11_POWER_MODE, *PNDIS_802_11_POWER_MODE;
  719. typedef ULONG NDIS_802_11_TX_POWER_LEVEL; // in milliwatts
  720. //
  721. // Received Signal Strength Indication
  722. //
  723. typedef LONG NDIS_802_11_RSSI; // in dBm
  724. typedef struct _NDIS_802_11_CONFIGURATION_FH
  725. {
  726. ULONG Length; // Length of structure
  727. ULONG HopPattern; // As defined by 802.11, MSB set
  728. ULONG HopSet; // to one if non-802.11
  729. ULONG DwellTime; // units are Kusec
  730. } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH;
  731. typedef struct _NDIS_802_11_CONFIGURATION
  732. {
  733. ULONG Length; // Length of structure
  734. ULONG BeaconPeriod; // units are Kusec
  735. ULONG ATIMWindow; // units are Kusec
  736. ULONG DSConfig; // Frequency, units are kHz
  737. NDIS_802_11_CONFIGURATION_FH FHConfig;
  738. } NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION;
  739. typedef struct _NDIS_802_11_STATISTICS
  740. {
  741. ULONG Length; // Length of structure
  742. LARGE_INTEGER TransmittedFragmentCount;
  743. LARGE_INTEGER MulticastTransmittedFrameCount;
  744. LARGE_INTEGER FailedCount;
  745. LARGE_INTEGER RetryCount;
  746. LARGE_INTEGER MultipleRetryCount;
  747. LARGE_INTEGER RTSSuccessCount;
  748. LARGE_INTEGER RTSFailureCount;
  749. LARGE_INTEGER ACKFailureCount;
  750. LARGE_INTEGER FrameDuplicateCount;
  751. LARGE_INTEGER ReceivedFragmentCount;
  752. LARGE_INTEGER MulticastReceivedFrameCount;
  753. LARGE_INTEGER FCSErrorCount;
  754. } NDIS_802_11_STATISTICS, *PNDIS_802_11_STATISTICS;
  755. typedef ULONG NDIS_802_11_KEY_INDEX;
  756. typedef struct _NDIS_802_11_WEP
  757. {
  758. ULONG Length; // Length of this structure
  759. ULONG KeyIndex; // 0 is the per-client key, 1-N are the
  760. // global keys
  761. ULONG KeyLength; // length of key in bytes
  762. UCHAR KeyMaterial[1]; // variable length depending on above field
  763. } NDIS_802_11_WEP, *PNDIS_802_11_WEP;
  764. typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE
  765. {
  766. Ndis802_11IBSS,
  767. Ndis802_11Infrastructure,
  768. Ndis802_11AutoUnknown,
  769. Ndis802_11InfrastructureMax // Not a real value, defined as upper bound
  770. } NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE;
  771. typedef enum _NDIS_802_11_AUTHENTICATION_MODE
  772. {
  773. Ndis802_11AuthModeOpen,
  774. Ndis802_11AuthModeShared,
  775. Ndis802_11AuthModeAutoSwitch,
  776. Ndis802_11AuthModeMax // Not a real mode, defined as upper bound
  777. } NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE;
  778. typedef UCHAR NDIS_802_11_RATES[8]; // Set of 8 data rates
  779. typedef UCHAR NDIS_802_11_MAC_ADDRESS[6];
  780. typedef struct _NDIS_802_11_SSID
  781. {
  782. ULONG SsidLength; // length of SSID field below, in bytes;
  783. // this can be zero.
  784. UCHAR Ssid[32]; // SSID information field
  785. } NDIS_802_11_SSID, *PNDIS_802_11_SSID;
  786. typedef struct _NDIS_WLAN_BSSID
  787. {
  788. ULONG Length; // Length of this structure
  789. NDIS_802_11_MAC_ADDRESS MacAddress; // BSSID
  790. UCHAR Reserved[2];
  791. NDIS_802_11_SSID Ssid; // SSID
  792. ULONG Privacy; // WEP encryption requirement
  793. NDIS_802_11_RSSI Rssi; // receive signal
  794. // strength in dBm
  795. NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
  796. NDIS_802_11_CONFIGURATION Configuration;
  797. NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
  798. NDIS_802_11_RATES SupportedRates;
  799. } NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID;
  800. typedef struct _NDIS_802_11_BSSID_LIST
  801. {
  802. ULONG NumberOfItems; // in list below, at least 1
  803. NDIS_WLAN_BSSID Bssid[1];
  804. } NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST;
  805. typedef ULONG NDIS_802_11_FRAGMENTATION_THRESHOLD;
  806. typedef ULONG NDIS_802_11_RTS_THRESHOLD;
  807. typedef ULONG NDIS_802_11_ANTENNA;
  808. typedef enum _NDIS_802_11_PRIVACY_FILTER
  809. {
  810. Ndis802_11PrivFilterAcceptAll,
  811. Ndis802_11PrivFilter8021xWEP
  812. } NDIS_802_11_PRIVACY_FILTER, *PNDIS_802_11_PRIVACY_FILTER;
  813. typedef enum _NDIS_802_11_WEP_STATUS
  814. {
  815. Ndis802_11WEPEnabled,
  816. Ndis802_11WEPDisabled,
  817. Ndis802_11WEPKeyAbsent,
  818. Ndis802_11WEPNotSupported
  819. } NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS;
  820. typedef enum _NDIS_802_11_RELOAD_DEFAULTS
  821. {
  822. Ndis802_11ReloadWEPKeys
  823. } NDIS_802_11_RELOAD_DEFAULTS, *PNDIS_802_11_RELOAD_DEFAULTS;
  824. //
  825. // IRDA objects
  826. //
  827. #define OID_IRDA_RECEIVING 0x0A010100
  828. #define OID_IRDA_TURNAROUND_TIME 0x0A010101
  829. #define OID_IRDA_SUPPORTED_SPEEDS 0x0A010102
  830. #define OID_IRDA_LINK_SPEED 0x0A010103
  831. #define OID_IRDA_MEDIA_BUSY 0x0A010104
  832. #define OID_IRDA_EXTRA_RCV_BOFS 0x0A010200
  833. #define OID_IRDA_RATE_SNIFF 0x0A010201
  834. #define OID_IRDA_UNICAST_LIST 0x0A010202
  835. #define OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0A010203
  836. #define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE 0x0A010204
  837. #define OID_IRDA_MAX_SEND_WINDOW_SIZE 0x0A010205
  838. #define OID_IRDA_RESERVED1 0x0A01020A // The range between OID_IRDA_RESERVED1
  839. #define OID_IRDA_RESERVED2 0x0A01020F // and OID_IRDA_RESERVED2 is reserved
  840. //
  841. // BPC OIDs
  842. //
  843. #define OID_BPC_ADAPTER_CAPS 0x0B010100
  844. #define OID_BPC_DEVICES 0x0B010101
  845. #define OID_BPC_DEVICE_CAPS 0x0B010102
  846. #define OID_BPC_DEVICE_SETTINGS 0x0B010103
  847. #define OID_BPC_CONNECTION_STATUS 0x0B010104
  848. #define OID_BPC_ADDRESS_COMPARE 0x0B010105
  849. #define OID_BPC_PROGRAM_GUIDE 0x0B010106
  850. #define OID_BPC_LAST_ERROR 0x0B020107
  851. #define OID_BPC_POOL 0x0B010108
  852. #define OID_BPC_PROVIDER_SPECIFIC 0x0B020109
  853. #define OID_BPC_ADAPTER_SPECIFIC 0x0B02010A
  854. #define OID_BPC_CONNECT 0x0B01010B
  855. #define OID_BPC_COMMIT 0x0B01010C
  856. #define OID_BPC_DISCONNECT 0x0B01010D
  857. #define OID_BPC_CONNECTION_ENABLE 0x0B01010E
  858. #define OID_BPC_POOL_RESERVE 0x0B01010F
  859. #define OID_BPC_POOL_RETURN 0x0B010110
  860. #define OID_BPC_FORCE_RECEIVE 0x0B010111
  861. #define OID_BPC_LAST 0x0B020112
  862. //
  863. // IEEE1394 mandatory general OIDs.
  864. //
  865. #define OID_1394_LOCAL_NODE_INFO 0x0C010101
  866. #define OID_1394_VC_INFO 0x0C010102
  867. //
  868. // The following OIDs are not specific to a media.
  869. //
  870. //
  871. // These are objects for Connection-oriented media call-managers.
  872. //
  873. #define OID_CO_ADD_PVC 0xFE000001
  874. #define OID_CO_DELETE_PVC 0xFE000002
  875. #define OID_CO_GET_CALL_INFORMATION 0xFE000003
  876. #define OID_CO_ADD_ADDRESS 0xFE000004
  877. #define OID_CO_DELETE_ADDRESS 0xFE000005
  878. #define OID_CO_GET_ADDRESSES 0xFE000006
  879. #define OID_CO_ADDRESS_CHANGE 0xFE000007
  880. #define OID_CO_SIGNALING_ENABLED 0xFE000008
  881. #define OID_CO_SIGNALING_DISABLED 0xFE000009
  882. #define OID_CO_AF_CLOSE 0xFE00000A
  883. //
  884. // Objects for call-managers and MCMs that support TAPI access.
  885. //
  886. #define OID_CO_TAPI_CM_CAPS 0xFE001001
  887. #define OID_CO_TAPI_LINE_CAPS 0xFE001002
  888. #define OID_CO_TAPI_ADDRESS_CAPS 0xFE001003
  889. #define OID_CO_TAPI_TRANSLATE_TAPI_CALLPARAMS 0xFE001004
  890. #define OID_CO_TAPI_TRANSLATE_NDIS_CALLPARAMS 0xFE001005
  891. #define OID_CO_TAPI_TRANSLATE_TAPI_SAP 0xFE001006
  892. #define OID_CO_TAPI_GET_CALL_DIAGNOSTICS 0xFE001007
  893. #define OID_CO_TAPI_REPORT_DIGITS 0xFE001008
  894. #define OID_CO_TAPI_DONT_REPORT_DIGITS 0xFE001009
  895. //
  896. // PnP and PM OIDs
  897. //
  898. #define OID_PNP_CAPABILITIES 0xFD010100
  899. #define OID_PNP_SET_POWER 0xFD010101
  900. #define OID_PNP_QUERY_POWER 0xFD010102
  901. #define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103
  902. #define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104
  903. #define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105
  904. #define OID_PNP_ENABLE_WAKE_UP 0xFD010106
  905. //
  906. // PnP/PM Statistics (Optional).
  907. //
  908. #define OID_PNP_WAKE_UP_OK 0xFD020200
  909. #define OID_PNP_WAKE_UP_ERROR 0xFD020201
  910. //
  911. // The following bits are defined for OID_PNP_ENABLE_WAKE_UP
  912. //
  913. #define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001
  914. #define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002
  915. #define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004
  916. //
  917. // TCP/IP OIDs
  918. //
  919. #define OID_TCP_TASK_OFFLOAD 0xFC010201
  920. #define OID_TCP_TASK_IPSEC_ADD_SA 0xFC010202
  921. #define OID_TCP_TASK_IPSEC_DELETE_SA 0xFC010203
  922. #define OID_TCP_SAN_SUPPORT 0xFC010204
  923. #define OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 0xFC010205
  924. #define OID_TCP_TASK_IPSEC_DELETE_UDPESP_SA 0xFC010206
  925. //
  926. // Defines for FFP
  927. //
  928. #define OID_FFP_SUPPORT 0xFC010210
  929. #define OID_FFP_FLUSH 0xFC010211
  930. #define OID_FFP_CONTROL 0xFC010212
  931. #define OID_FFP_PARAMS 0xFC010213
  932. #define OID_FFP_DATA 0xFC010214
  933. #define OID_FFP_DRIVER_STATS 0xFC020210
  934. #define OID_FFP_ADAPTER_STATS 0xFC020211
  935. //
  936. // Defines for QOS
  937. //
  938. #define OID_QOS_TC_SUPPORTED 0xFB010100
  939. #define OID_QOS_REMAINING_BANDWIDTH 0xFB010101
  940. #define OID_QOS_ISSLOW_FLOW 0xFB010102
  941. #define OID_QOS_BESTEFFORT_BANDWIDTH 0xFB010103
  942. #define OID_QOS_LATENCY 0xFB010104
  943. #define OID_QOS_FLOW_IP_CONFORMING 0xFB010105
  944. #define OID_QOS_FLOW_COUNT 0xFB010106
  945. #define OID_QOS_NON_BESTEFFORT_LIMIT 0xFB010107
  946. #define OID_QOS_SCHEDULING_PROFILES_SUPPORTED 0xFB010108
  947. #define OID_QOS_CURRENT_SCHEDULING_PROFILE 0xFB010109
  948. #define OID_QOS_TIMER_RESOLUTION 0xFB01010A
  949. #define OID_QOS_STATISTICS_BUFFER 0xFB01010B
  950. #define OID_QOS_HIERARCHY_CLASS 0xFB01010C
  951. #define OID_QOS_FLOW_MODE 0xFB01010D
  952. #define OID_QOS_ISSLOW_FRAGMENT_SIZE 0xFB01010E
  953. #define OID_QOS_FLOW_IP_NONCONFORMING 0xFB01010F
  954. #define OID_QOS_FLOW_8021P_CONFORMING 0xFB010110
  955. #define OID_QOS_FLOW_8021P_NONCONFORMING 0xFB010111
  956. #define OID_QOS_ENABLE_AVG_STATS 0xFB010112
  957. #define OID_QOS_ENABLE_WINDOW_ADJUSTMENT 0xFB010113
  958. //
  959. // NDIS Proxy OID_GEN_CO_DEVICE_PROFILE structure. The optional OID and
  960. // this structure is a generic means of describing a CO device's
  961. // capabilites, and is used by the NDIS Proxy to construct a TAPI device
  962. // capabilities structure.
  963. //
  964. typedef struct NDIS_CO_DEVICE_PROFILE
  965. {
  966. NDIS_VAR_DATA_DESC DeviceDescription; // e.g. 'GigabitATMNet'
  967. NDIS_VAR_DATA_DESC DevSpecificInfo; // special features
  968. ULONG ulTAPISupplementaryPassThru;// reserved in NT5
  969. ULONG ulAddressModes;
  970. ULONG ulNumAddresses;
  971. ULONG ulBearerModes;
  972. ULONG ulMaxTxRate; // bytes per second
  973. ULONG ulMinTxRate; // bytes per second
  974. ULONG ulMaxRxRate; // bytes per second
  975. ULONG ulMinRxRate; // bytes per second
  976. ULONG ulMediaModes;
  977. //
  978. // Tone/digit generation and recognition capabilities
  979. //
  980. ULONG ulGenerateToneModes;
  981. ULONG ulGenerateToneMaxNumFreq;
  982. ULONG ulGenerateDigitModes;
  983. ULONG ulMonitorToneMaxNumFreq;
  984. ULONG ulMonitorToneMaxNumEntries;
  985. ULONG ulMonitorDigitModes;
  986. ULONG ulGatherDigitsMinTimeout;// milliseconds
  987. ULONG ulGatherDigitsMaxTimeout;// milliseconds
  988. ULONG ulDevCapFlags; // Misc. capabilities
  989. ULONG ulMaxNumActiveCalls; // (This * ulMinRate) = total bandwidth (which may equal ulMaxRate)
  990. ULONG ulAnswerMode; // Effect of answering a new call when an
  991. // existing call is non-idle
  992. //
  993. // User-User info sizes allowed to accompany each operation
  994. //
  995. ULONG ulUUIAcceptSize; // bytes
  996. ULONG ulUUIAnswerSize; // bytes
  997. ULONG ulUUIMakeCallSize; // bytes
  998. ULONG ulUUIDropSize; // bytes
  999. ULONG ulUUISendUserUserInfoSize; // bytes
  1000. ULONG ulUUICallInfoSize; // bytes
  1001. } NDIS_CO_DEVICE_PROFILE, *PNDIS_CO_DEVICE_PROFILE;
  1002. //
  1003. // Structures for TCP IPSec.
  1004. //
  1005. typedef ULONG IPAddr, IPMask;
  1006. typedef ULONG SPI_TYPE;
  1007. typedef enum _OFFLOAD_OPERATION_E
  1008. {
  1009. AUTHENTICATE = 1,
  1010. ENCRYPT
  1011. }
  1012. OFFLOAD_OPERATION_E;
  1013. typedef struct _OFFLOAD_ALGO_INFO
  1014. {
  1015. ULONG algoIdentifier;
  1016. ULONG algoKeylen;
  1017. ULONG algoRounds;
  1018. }
  1019. OFFLOAD_ALGO_INFO,
  1020. *POFFLOAD_ALGO_INFO;
  1021. typedef enum _OFFLOAD_CONF_ALGO
  1022. {
  1023. OFFLOAD_IPSEC_CONF_NONE,
  1024. OFFLOAD_IPSEC_CONF_DES,
  1025. OFFLOAD_IPSEC_CONF_RESERVED,
  1026. OFFLOAD_IPSEC_CONF_3_DES,
  1027. OFFLOAD_IPSEC_CONF_MAX
  1028. }
  1029. OFFLOAD_CONF_ALGO;
  1030. typedef enum _OFFLOAD_INTEGRITY_ALGO
  1031. {
  1032. OFFLOAD_IPSEC_INTEGRITY_NONE,
  1033. OFFLOAD_IPSEC_INTEGRITY_MD5,
  1034. OFFLOAD_IPSEC_INTEGRITY_SHA,
  1035. OFFLOAD_IPSEC_INTEGRITY_MAX
  1036. }
  1037. OFFLOAD_INTEGRITY_ALGO;
  1038. typedef struct _OFFLOAD_SECURITY_ASSOCIATION
  1039. {
  1040. OFFLOAD_OPERATION_E Operation;
  1041. SPI_TYPE SPI;
  1042. OFFLOAD_ALGO_INFO IntegrityAlgo;
  1043. OFFLOAD_ALGO_INFO ConfAlgo;
  1044. OFFLOAD_ALGO_INFO Reserved;
  1045. }
  1046. OFFLOAD_SECURITY_ASSOCIATION,
  1047. *POFFLOAD_SECURITY_ASSOCIATION;
  1048. #define OFFLOAD_MAX_SAS 3
  1049. #define OFFLOAD_INBOUND_SA 0x0001
  1050. #define OFFLOAD_OUTBOUND_SA 0x0002
  1051. typedef struct _OFFLOAD_IPSEC_ADD_SA
  1052. {
  1053. IPAddr SrcAddr;
  1054. IPMask SrcMask;
  1055. IPAddr DestAddr;
  1056. IPMask DestMask;
  1057. ULONG Protocol;
  1058. USHORT SrcPort;
  1059. USHORT DestPort;
  1060. IPAddr SrcTunnelAddr;
  1061. IPAddr DestTunnelAddr;
  1062. USHORT Flags;
  1063. SHORT NumSAs;
  1064. OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
  1065. HANDLE OffloadHandle;
  1066. ULONG KeyLen;
  1067. UCHAR KeyMat[1];
  1068. } OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA;
  1069. typedef struct _OFFLOAD_IPSEC_DELETE_SA
  1070. {
  1071. HANDLE OffloadHandle;
  1072. } OFFLOAD_IPSEC_DELETE_SA, *POFFLOAD_IPSEC_DELETE_SA;
  1073. typedef enum _UDP_ENCAP_TYPE
  1074. {
  1075. OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_IKE,
  1076. OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_OTHER
  1077. } UDP_ENCAP_TYPE, * PUDP_ENCAP_TYPE;
  1078. typedef struct _OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY
  1079. {
  1080. UDP_ENCAP_TYPE UdpEncapType;
  1081. USHORT DstEncapPort;
  1082. } OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY, * POFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY;
  1083. typedef struct _OFFLOAD_IPSEC_ADD_UDPESP_SA
  1084. {
  1085. IPAddr SrcAddr;
  1086. IPMask SrcMask;
  1087. IPAddr DstAddr;
  1088. IPMask DstMask;
  1089. ULONG Protocol;
  1090. USHORT SrcPort;
  1091. USHORT DstPort;
  1092. IPAddr SrcTunnelAddr;
  1093. IPAddr DstTunnelAddr;
  1094. USHORT Flags;
  1095. SHORT NumSAs;
  1096. OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
  1097. HANDLE OffloadHandle;
  1098. OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY EncapTypeEntry;
  1099. HANDLE EncapTypeEntryOffldHandle;
  1100. ULONG KeyLen;
  1101. UCHAR KeyMat[1];
  1102. } OFFLOAD_IPSEC_ADD_UDPESP_SA, * POFFLOAD_IPSEC_ADD_UDPESP_SA;
  1103. typedef struct _OFFLOAD_IPSEC_DELETE_UDPESP_SA
  1104. {
  1105. HANDLE OffloadHandle;
  1106. HANDLE EncapTypeEntryOffldHandle;
  1107. } OFFLOAD_IPSEC_DELETE_UDPESP_SA, * POFFLOAD_IPSEC_DELETE_UDPESP_SA;
  1108. //
  1109. // Type to go with OID_GEN_VLAN_ID: the least significant 12 bits are
  1110. // used as the VLAN ID (VID) per IEEE 802.1Q. Higher order bits are
  1111. // reserved and must be set to 0.
  1112. //
  1113. typedef ULONG NDIS_VLAN_ID;
  1114. //
  1115. // Medium the Ndis Driver is running on (OID_GEN_MEDIA_SUPPORTED/ OID_GEN_MEDIA_IN_USE).
  1116. //
  1117. typedef enum _NDIS_MEDIUM
  1118. {
  1119. NdisMedium802_3,
  1120. NdisMedium802_5,
  1121. NdisMediumFddi,
  1122. NdisMediumWan,
  1123. NdisMediumLocalTalk,
  1124. NdisMediumDix, // defined for convenience, not a real medium
  1125. NdisMediumArcnetRaw,
  1126. NdisMediumArcnet878_2,
  1127. NdisMediumAtm,
  1128. NdisMediumWirelessWan,
  1129. NdisMediumIrda,
  1130. NdisMediumBpc,
  1131. NdisMediumCoWan,
  1132. NdisMedium1394,
  1133. NdisMediumInfiniBand,
  1134. NdisMediumMax // Not a real medium, defined as an upper-bound
  1135. } NDIS_MEDIUM, *PNDIS_MEDIUM;
  1136. //
  1137. // Physical Medium Type definitions. Used with OID_GEN_PHYSICAL_MEDIUM.
  1138. //
  1139. typedef enum _NDIS_PHYSICAL_MEDIUM
  1140. {
  1141. NdisPhysicalMediumUnspecified,
  1142. NdisPhysicalMediumWirelessLan,
  1143. NdisPhysicalMediumCableModem,
  1144. NdisPhysicalMediumPhoneLine,
  1145. NdisPhysicalMediumPowerLine,
  1146. NdisPhysicalMediumDSL, // includes ADSL and UADSL (G.Lite)
  1147. NdisPhysicalMediumFibreChannel,
  1148. NdisPhysicalMedium1394,
  1149. NdisPhysicalMediumWirelessWan,
  1150. NdisPhysicalMediumMax // Not a real physical type, defined as an upper-bound
  1151. } NDIS_PHYSICAL_MEDIUM, *PNDIS_PHYSICAL_MEDIUM;
  1152. //
  1153. // Protocol types supported by ndis. These values need to be consistent with ADDRESS_TYPE_XXX defined in TDI.H
  1154. //
  1155. #define NDIS_PROTOCOL_ID_DEFAULT 0x00
  1156. #define NDIS_PROTOCOL_ID_TCP_IP 0x02
  1157. #define NDIS_PROTOCOL_ID_IPX 0x06
  1158. #define NDIS_PROTOCOL_ID_NBF 0x07
  1159. #define NDIS_PROTOCOL_ID_MAX 0x0F
  1160. #define NDIS_PROTOCOL_ID_MASK 0x0F
  1161. //
  1162. // The following is used with OID_GEN_TRANSPORT_HEADER_OFFSET to indicate the length of the layer-2 header
  1163. // for packets sent by a particular protocol.
  1164. //
  1165. typedef struct _TRANSPORT_HEADER_OFFSET
  1166. {
  1167. USHORT ProtocolType; // The protocol that is sending this OID (NDIS_PROTOCOL_ID_XXX above)
  1168. USHORT HeaderOffset; // The header offset
  1169. } TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;
  1170. //
  1171. // The structures below need to be consistent with TRANSPORT_ADDRESS structures in TDI.H
  1172. //
  1173. typedef struct _NETWORK_ADDRESS
  1174. {
  1175. USHORT AddressLength; // length in bytes of Address[] in this
  1176. USHORT AddressType; // type of this address (NDIS_PROTOCOL_ID_XXX above)
  1177. UCHAR Address[1]; // actually AddressLength bytes long
  1178. } NETWORK_ADDRESS, *PNETWORK_ADDRESS;
  1179. //
  1180. // The following is used with OID_GEN_NETWORK_LAYER_ADDRESSES to set network layer addresses on an interface
  1181. //
  1182. typedef struct _NETWORK_ADDRESS_LIST
  1183. {
  1184. LONG AddressCount; // number of addresses following
  1185. USHORT AddressType; // type of this address (NDIS_PROTOCOL_ID_XXX above)
  1186. NETWORK_ADDRESS Address[1]; // actually AddressCount elements long
  1187. } NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
  1188. //
  1189. // IP address - This must remain consistent with TDI_ADDRESS_IP in tdi.h
  1190. //
  1191. typedef struct _NETWORK_ADDRESS_IP
  1192. {
  1193. USHORT sin_port;
  1194. ULONG in_addr;
  1195. UCHAR sin_zero[8];
  1196. } NETWORK_ADDRESS_IP, *PNETWORK_ADDRESS_IP;
  1197. #define NETWORK_ADDRESS_LENGTH_IP sizeof (NETWORK_ADDRESS_IP)
  1198. //
  1199. // IPX address - This must remain consistent with TDI_ADDRESS_IPX in tdi.h.
  1200. //
  1201. typedef struct _NETWORK_ADDRESS_IPX
  1202. {
  1203. ULONG NetworkAddress;
  1204. UCHAR NodeAddress[6];
  1205. USHORT Socket;
  1206. } NETWORK_ADDRESS_IPX, *PNETWORK_ADDRESS_IPX;
  1207. #define NETWORK_ADDRESS_LENGTH_IPX sizeof (NETWORK_ADDRESS_IPX)
  1208. //
  1209. // Hardware status codes (OID_GEN_HARDWARE_STATUS).
  1210. //
  1211. typedef enum _NDIS_HARDWARE_STATUS
  1212. {
  1213. NdisHardwareStatusReady,
  1214. NdisHardwareStatusInitializing,
  1215. NdisHardwareStatusReset,
  1216. NdisHardwareStatusClosing,
  1217. NdisHardwareStatusNotReady
  1218. } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS;
  1219. //
  1220. // this is the type passed in the OID_GEN_GET_TIME_CAPS request
  1221. //
  1222. typedef struct _GEN_GET_TIME_CAPS
  1223. {
  1224. ULONG Flags; // Bits defined below
  1225. ULONG ClockPrecision;
  1226. } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
  1227. #define READABLE_LOCAL_CLOCK 0x00000001
  1228. #define CLOCK_NETWORK_DERIVED 0x00000002
  1229. #define CLOCK_PRECISION 0x00000004
  1230. #define RECEIVE_TIME_INDICATION_CAPABLE 0x00000008
  1231. #define TIMED_SEND_CAPABLE 0x00000010
  1232. #define TIME_STAMP_CAPABLE 0x00000020
  1233. //
  1234. // this is the type passed in the OID_GEN_GET_NETCARD_TIME request
  1235. //
  1236. typedef struct _GEN_GET_NETCARD_TIME
  1237. {
  1238. ULONGLONG ReadTime;
  1239. } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;
  1240. //
  1241. // NDIS PnP routines and definitions.
  1242. //
  1243. typedef struct _NDIS_PM_PACKET_PATTERN
  1244. {
  1245. ULONG Priority; // Importance of the given pattern.
  1246. ULONG Reserved; // Context information for transports.
  1247. ULONG MaskSize; // Size in bytes of the pattern mask.
  1248. ULONG PatternOffset; // Offset from beginning of this
  1249. // structure to the pattern bytes.
  1250. ULONG PatternSize; // Size in bytes of the pattern.
  1251. ULONG PatternFlags; // Flags (TBD).
  1252. } NDIS_PM_PACKET_PATTERN, *PNDIS_PM_PACKET_PATTERN;
  1253. //
  1254. // The following structure defines the device power states.
  1255. //
  1256. typedef enum _NDIS_DEVICE_POWER_STATE
  1257. {
  1258. NdisDeviceStateUnspecified = 0,
  1259. NdisDeviceStateD0,
  1260. NdisDeviceStateD1,
  1261. NdisDeviceStateD2,
  1262. NdisDeviceStateD3,
  1263. NdisDeviceStateMaximum
  1264. } NDIS_DEVICE_POWER_STATE, *PNDIS_DEVICE_POWER_STATE;
  1265. //
  1266. // The following structure defines the wake-up capabilities of the device.
  1267. //
  1268. typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES
  1269. {
  1270. NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
  1271. NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
  1272. NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
  1273. } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES;
  1274. //
  1275. // the following flags define the -enabled- wake-up capabilities of the device
  1276. // passed in the Flags field of NDIS_PNP_CAPABILITIES structure
  1277. //
  1278. #define NDIS_DEVICE_WAKE_UP_ENABLE 0x00000001
  1279. #define NDIS_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE 0x00000002
  1280. #define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004
  1281. #if NDIS_RECV_SCALE
  1282. //
  1283. // the following structure defines the Receive scale capabilities of the miniport
  1284. //
  1285. typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES
  1286. {
  1287. USHORT Version;
  1288. USHORT Size;
  1289. ULONG SupportsMultipleSourceInterrupt:1;
  1290. ULONG SupportsClassificationAtIsr:1;
  1291. ULONG SupportsClassificationAtDpc:1;
  1292. ULONG SupportsHashFunction1:1;
  1293. ULONG SupportsHashFunction2:1;
  1294. ULONG SupportsHashFunction3:1;
  1295. ULONG SupportsHashFunction4:1;
  1296. ULONG NumberOfInterruptSources;
  1297. ULONG NumberOfRcvQueues;
  1298. } NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;
  1299. #endif
  1300. //
  1301. // This structure defines general PnP capabilities of the miniport driver.
  1302. //
  1303. typedef struct _NDIS_PNP_CAPABILITIES
  1304. {
  1305. ULONG Flags;
  1306. NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities;
  1307. } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES;
  1308. //
  1309. // Defines the attachment types for FDDI (OID_FDDI_ATTACHMENT_TYPE).
  1310. //
  1311. typedef enum _NDIS_FDDI_ATTACHMENT_TYPE
  1312. {
  1313. NdisFddiTypeIsolated = 1,
  1314. NdisFddiTypeLocalA,
  1315. NdisFddiTypeLocalB,
  1316. NdisFddiTypeLocalAB,
  1317. NdisFddiTypeLocalS,
  1318. NdisFddiTypeWrapA,
  1319. NdisFddiTypeWrapB,
  1320. NdisFddiTypeWrapAB,
  1321. NdisFddiTypeWrapS,
  1322. NdisFddiTypeCWrapA,
  1323. NdisFddiTypeCWrapB,
  1324. NdisFddiTypeCWrapS,
  1325. NdisFddiTypeThrough
  1326. } NDIS_FDDI_ATTACHMENT_TYPE, *PNDIS_FDDI_ATTACHMENT_TYPE;
  1327. //
  1328. // Defines the ring management states for FDDI (OID_FDDI_RING_MGT_STATE).
  1329. //
  1330. typedef enum _NDIS_FDDI_RING_MGT_STATE
  1331. {
  1332. NdisFddiRingIsolated = 1,
  1333. NdisFddiRingNonOperational,
  1334. NdisFddiRingOperational,
  1335. NdisFddiRingDetect,
  1336. NdisFddiRingNonOperationalDup,
  1337. NdisFddiRingOperationalDup,
  1338. NdisFddiRingDirected,
  1339. NdisFddiRingTrace
  1340. } NDIS_FDDI_RING_MGT_STATE, *PNDIS_FDDI_RING_MGT_STATE;
  1341. //
  1342. // Defines the Lconnection state for FDDI (OID_FDDI_LCONNECTION_STATE).
  1343. //
  1344. typedef enum _NDIS_FDDI_LCONNECTION_STATE
  1345. {
  1346. NdisFddiStateOff = 1,
  1347. NdisFddiStateBreak,
  1348. NdisFddiStateTrace,
  1349. NdisFddiStateConnect,
  1350. NdisFddiStateNext,
  1351. NdisFddiStateSignal,
  1352. NdisFddiStateJoin,
  1353. NdisFddiStateVerify,
  1354. NdisFddiStateActive,
  1355. NdisFddiStateMaintenance
  1356. } NDIS_FDDI_LCONNECTION_STATE, *PNDIS_FDDI_LCONNECTION_STATE;
  1357. //
  1358. // Defines the medium subtypes for WAN medium (OID_WAN_MEDIUM_SUBTYPE).
  1359. // Sub-medium used only by connection-oriented WAN devices
  1360. // i.e. NdisMediumWan, NdisMediumCoWan.
  1361. //
  1362. typedef enum _NDIS_WAN_MEDIUM_SUBTYPE
  1363. {
  1364. NdisWanMediumHub,
  1365. NdisWanMediumX_25,
  1366. NdisWanMediumIsdn,
  1367. NdisWanMediumSerial,
  1368. NdisWanMediumFrameRelay,
  1369. NdisWanMediumAtm,
  1370. NdisWanMediumSonet,
  1371. NdisWanMediumSW56K,
  1372. NdisWanMediumPPTP,
  1373. NdisWanMediumL2TP,
  1374. NdisWanMediumIrda,
  1375. NdisWanMediumParallel,
  1376. NdisWanMediumPppoe
  1377. } NDIS_WAN_MEDIUM_SUBTYPE, *PNDIS_WAN_MEDIUM_SUBTYPE;
  1378. //
  1379. // Defines the header format for WAN medium (OID_WAN_HEADER_FORMAT).
  1380. //
  1381. typedef enum _NDIS_WAN_HEADER_FORMAT
  1382. {
  1383. NdisWanHeaderNative, // src/dest based on subtype, followed by NLPID
  1384. NdisWanHeaderEthernet // emulation of ethernet header
  1385. } NDIS_WAN_HEADER_FORMAT, *PNDIS_WAN_HEADER_FORMAT;
  1386. //
  1387. // Defines the line quality on a WAN line (OID_WAN_QUALITY_OF_SERVICE).
  1388. //
  1389. typedef enum _NDIS_WAN_QUALITY
  1390. {
  1391. NdisWanRaw,
  1392. NdisWanErrorControl,
  1393. NdisWanReliable
  1394. } NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY;
  1395. //
  1396. // Defines a protocol's WAN specific capabilities (OID_WAN_PROTOCOL_CAPS).
  1397. //
  1398. typedef struct _NDIS_WAN_PROTOCOL_CAPS
  1399. {
  1400. IN ULONG Flags;
  1401. IN ULONG Reserved;
  1402. } NDIS_WAN_PROTOCOL_CAPS, *PNDIS_WAN_PROTOCOL_CAPS;
  1403. //
  1404. // Flags used in NDIS_WAN_PROTOCOL_CAPS
  1405. //
  1406. #define WAN_PROTOCOL_KEEPS_STATS 0x00000001
  1407. //
  1408. // Defines the state of a token-ring adapter (OID_802_5_CURRENT_RING_STATE).
  1409. //
  1410. typedef enum _NDIS_802_5_RING_STATE
  1411. {
  1412. NdisRingStateOpened = 1,
  1413. NdisRingStateClosed,
  1414. NdisRingStateOpening,
  1415. NdisRingStateClosing,
  1416. NdisRingStateOpenFailure,
  1417. NdisRingStateRingFailure
  1418. } NDIS_802_5_RING_STATE, *PNDIS_802_5_RING_STATE;
  1419. //
  1420. // Defines the state of the LAN media
  1421. //
  1422. typedef enum _NDIS_MEDIA_STATE
  1423. {
  1424. NdisMediaStateConnected,
  1425. NdisMediaStateDisconnected
  1426. } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;
  1427. //
  1428. // The following is set on a per-packet basis as OOB data with NdisClass802_3Priority
  1429. //
  1430. typedef ULONG Priority_802_3; // 0-7 priority levels
  1431. //
  1432. // The following structure is used to query OID_GEN_CO_LINK_SPEED and
  1433. // OID_GEN_CO_MINIMUM_LINK_SPEED. The first OID will return the current
  1434. // link speed of the adapter. The second will return the minimum link speed
  1435. // the adapter is capable of.
  1436. //
  1437. typedef struct _NDIS_CO_LINK_SPEED
  1438. {
  1439. ULONG Outbound;
  1440. ULONG Inbound;
  1441. } NDIS_CO_LINK_SPEED, *PNDIS_CO_LINK_SPEED;
  1442. #ifndef _NDIS_
  1443. typedef int NDIS_STATUS, *PNDIS_STATUS;
  1444. #endif
  1445. //
  1446. // Structure to be used for OID_GEN_SUPPORTED_GUIDS.
  1447. // This structure describes an OID to GUID mapping.
  1448. // Or a Status to GUID mapping.
  1449. // When ndis receives a request for a give GUID it will
  1450. // query the miniport with the supplied OID.
  1451. //
  1452. typedef struct _NDIS_GUID
  1453. {
  1454. GUID Guid;
  1455. union
  1456. {
  1457. NDIS_OID Oid;
  1458. NDIS_STATUS Status;
  1459. };
  1460. ULONG Size; // Size of the data element. If the GUID
  1461. // represents an array then this is the
  1462. // size of an element in the array.
  1463. // This is -1 for strings.
  1464. ULONG Flags;
  1465. } NDIS_GUID, *PNDIS_GUID;
  1466. #define fNDIS_GUID_TO_OID 0x00000001
  1467. #define fNDIS_GUID_TO_STATUS 0x00000002
  1468. #define fNDIS_GUID_ANSI_STRING 0x00000004
  1469. #define fNDIS_GUID_UNICODE_STRING 0x00000008
  1470. #define fNDIS_GUID_ARRAY 0x00000010
  1471. #define fNDIS_GUID_ALLOW_READ 0x00000020
  1472. #define fNDIS_GUID_ALLOW_WRITE 0x00000040
  1473. //
  1474. // Ndis Packet Filter Bits (OID_GEN_CURRENT_PACKET_FILTER).
  1475. //
  1476. #define NDIS_PACKET_TYPE_DIRECTED 0x00000001
  1477. #define NDIS_PACKET_TYPE_MULTICAST 0x00000002
  1478. #define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004
  1479. #define NDIS_PACKET_TYPE_BROADCAST 0x00000008
  1480. #define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010
  1481. #define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020
  1482. #define NDIS_PACKET_TYPE_SMT 0x00000040
  1483. #define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080
  1484. #define NDIS_PACKET_TYPE_GROUP 0x00001000
  1485. #define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000
  1486. #define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000
  1487. #define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000
  1488. //
  1489. // Ndis Token-Ring Ring Status Codes (OID_802_5_CURRENT_RING_STATUS).
  1490. //
  1491. #define NDIS_RING_SIGNAL_LOSS 0x00008000
  1492. #define NDIS_RING_HARD_ERROR 0x00004000
  1493. #define NDIS_RING_SOFT_ERROR 0x00002000
  1494. #define NDIS_RING_TRANSMIT_BEACON 0x00001000
  1495. #define NDIS_RING_LOBE_WIRE_FAULT 0x00000800
  1496. #define NDIS_RING_AUTO_REMOVAL_ERROR 0x00000400
  1497. #define NDIS_RING_REMOVE_RECEIVED 0x00000200
  1498. #define NDIS_RING_COUNTER_OVERFLOW 0x00000100
  1499. #define NDIS_RING_SINGLE_STATION 0x00000080
  1500. #define NDIS_RING_RING_RECOVERY 0x00000040
  1501. //
  1502. // Ndis protocol option bits (OID_GEN_PROTOCOL_OPTIONS).
  1503. //
  1504. #define NDIS_PROT_OPTION_ESTIMATED_LENGTH 0x00000001
  1505. #define NDIS_PROT_OPTION_NO_LOOPBACK 0x00000002
  1506. #define NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT 0x00000004
  1507. #define NDIS_PROT_OPTION_SEND_RESTRICTED 0x00000008
  1508. //
  1509. // Ndis MAC option bits (OID_GEN_MAC_OPTIONS).
  1510. //
  1511. #define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001
  1512. #define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002
  1513. #define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004
  1514. #define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008
  1515. #define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010
  1516. #define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020
  1517. #define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040
  1518. #define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080
  1519. #define NDIS_MAC_OPTION_RECEIVE_AT_DPC 0x00000100
  1520. #define NDIS_MAC_OPTION_8021Q_VLAN 0x00000200
  1521. #define NDIS_MAC_OPTION_RESERVED 0x80000000
  1522. //
  1523. // NDIS media capabilities bits (OID_GEN_MEDIA_CAPABILITIES).
  1524. //
  1525. #define NDIS_MEDIA_CAP_TRANSMIT 0x00000001 // Supports sending data
  1526. #define NDIS_MEDIA_CAP_RECEIVE 0x00000002 // Supports receiving data
  1527. //
  1528. // NDIS MAC option bits for OID_GEN_CO_MAC_OPTIONS.
  1529. //
  1530. #define NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED 0x00000001
  1531. //
  1532. // The following is set on a per-packet basis as OOB data with NdisClassIrdaPacketInfo
  1533. // This is the per-packet info specified on a per-packet basis
  1534. //
  1535. typedef struct _NDIS_IRDA_PACKET_INFO
  1536. {
  1537. ULONG ExtraBOFs;
  1538. ULONG MinTurnAroundTime;
  1539. } NDIS_IRDA_PACKET_INFO, *PNDIS_IRDA_PACKET_INFO;
  1540. #ifdef WIRELESS_WAN
  1541. //
  1542. // Wireless WAN structure definitions
  1543. //
  1544. //
  1545. // currently defined Wireless network subtypes
  1546. //
  1547. typedef enum _NDIS_WW_NETWORK_TYPE
  1548. {
  1549. NdisWWGeneric,
  1550. NdisWWMobitex,
  1551. NdisWWPinpoint,
  1552. NdisWWCDPD,
  1553. NdisWWArdis,
  1554. NdisWWDataTAC,
  1555. NdisWWMetricom,
  1556. NdisWWGSM,
  1557. NdisWWCDMA,
  1558. NdisWWTDMA,
  1559. NdisWWAMPS,
  1560. NdisWWInmarsat,
  1561. NdisWWpACT,
  1562. NdisWWFlex,
  1563. NdisWWIDEN
  1564. } NDIS_WW_NETWORK_TYPE;
  1565. //
  1566. // currently defined header formats
  1567. //
  1568. typedef enum _NDIS_WW_HEADER_FORMAT
  1569. {
  1570. NdisWWDIXEthernetFrames,
  1571. NdisWWMPAKFrames,
  1572. NdisWWRDLAPFrames,
  1573. NdisWWMDC4800Frames,
  1574. NdisWWNCLFrames
  1575. } NDIS_WW_HEADER_FORMAT;
  1576. //
  1577. // currently defined encryption types
  1578. //
  1579. typedef enum _NDIS_WW_ENCRYPTION_TYPE
  1580. {
  1581. NdisWWUnknownEncryption = -1,
  1582. NdisWWNoEncryption,
  1583. NdisWWDefaultEncryption,
  1584. NdisWWDESEncryption,
  1585. NdisWWRC2Encryption,
  1586. NdisWWRC4Encryption,
  1587. NdisWWRC5Encryption
  1588. } NDIS_WW_ENCRYPTION_TYPE, *PNDIS_WW_ENCRYPTION_TYPE;
  1589. typedef enum _WW_ADDRESS_FORMAT
  1590. {
  1591. WW_IEEE_ADDRESS = 0,
  1592. WW_MOBITEX_MAN_ADDRESS,
  1593. WW_DATATAC_RDLAP_ADDRESS,
  1594. WW_DATATAC_MDC4800_ADDRESS,
  1595. WW_DATATAC_RESERVED,
  1596. WW_IPv4_ADDRESS,
  1597. WW_IPv6_ADDRESS,
  1598. WW_PROPRIETARY_ADDRESS,
  1599. } WW_ADDRESS_FORMAT;
  1600. typedef enum _WW_GEN_SUM_EXCEPTION
  1601. {
  1602. SIM_STATUS_OK = 0,
  1603. SIM_STATUS_ERROR,
  1604. SIM_STATUS_MISSING,
  1605. SIM_STATUS_NO_RESPONSE,
  1606. SIM_STATUS_REMOVED,
  1607. SIM_STATUS_CRYPT_ERROR,
  1608. SIM_STATUS_AUTH_ERROR,
  1609. SIM_STATUS_NEED_PIN,
  1610. SIM_STATUS_NEED_PUK,
  1611. SIM_STATUS_WRONG,
  1612. } WW_GEN_SIM_EXCEPTION;
  1613. //
  1614. // OID_WW_GEN_INDICATION_REQUEST
  1615. //
  1616. typedef struct _NDIS_WW_INDICATION_REQUEST
  1617. {
  1618. NDIS_OID Oid; // IN
  1619. ULONG uIndicationFlag; // IN
  1620. ULONG uApplicationToken; // IN OUT
  1621. HANDLE hIndicationHandle; // IN OUT
  1622. INT iPollingInterval; // IN OUT
  1623. NDIS_VAR_DATA_DESC InitialValue; // IN OUT
  1624. NDIS_VAR_DATA_DESC OIDIndicationValue; // OUT - only valid after indication
  1625. NDIS_VAR_DATA_DESC TriggerValue; // IN
  1626. } NDIS_WW_INDICATION_REQUEST, *PNDIS_WW_INDICATION_REQUEST;
  1627. #define OID_INDICATION_REQUEST_ENABLE 0x0000
  1628. #define OID_INDICATION_REQUEST_CANCEL 0x0001
  1629. //
  1630. // OID_WW_GEN_DEVICE_INFO
  1631. //
  1632. typedef struct _WW_DEVICE_INFO
  1633. {
  1634. NDIS_VAR_DATA_DESC Manufacturer;
  1635. NDIS_VAR_DATA_DESC ModelNum;
  1636. NDIS_VAR_DATA_DESC SWVersionNum;
  1637. NDIS_VAR_DATA_DESC SerialNum;
  1638. } WW_DEVICE_INFO, *PWW_DEVICE_INFO;
  1639. //
  1640. // OID_WW_GEN_OPERATION_MODE
  1641. //
  1642. typedef INT WW_OPERATION_MODE; // 0 = Normal mode
  1643. // 1 = Power saving mode
  1644. // -1 = mode unknown
  1645. //
  1646. // OID_WW_GEN_LOCK_STATUS
  1647. //
  1648. typedef INT WW_LOCK_STATUS; // 0 = unlocked
  1649. // 1 = locked
  1650. // -1 = unknown lock status
  1651. //
  1652. // OID_WW_GEN_DISABLE_TRANSMITTER
  1653. //
  1654. typedef INT WW_DISABLE_TRANSMITTER; // 0 = transmitter enabled
  1655. // 1 = transmitter disabled
  1656. // -1 = unknown value
  1657. //
  1658. // OID_WW_GEN_NETWORK_ID
  1659. //
  1660. typedef NDIS_VAR_DATA_DESC WW_NETWORK_ID;
  1661. //
  1662. // OID_WW_GEN_PERMANENT_ADDRESS
  1663. //
  1664. typedef NDIS_VAR_DATA_DESC WW_PERMANENT_ADDRESS;
  1665. //
  1666. // OID_WW_GEN_CURRENT_ADDRESS
  1667. //
  1668. typedef struct _WW_CURRENT_ADDRESS
  1669. {
  1670. NDIS_WW_HEADER_FORMAT Format;
  1671. NDIS_VAR_DATA_DESC Address;
  1672. } WW_CURRENT_ADDRESS, *PWW_CURRENT_ADDRESS;
  1673. //
  1674. // OID_WW_GEN_SUSPEND_DRIVER
  1675. //
  1676. typedef BOOLEAN WW_SUSPEND_DRIVER; // 0 = driver operational
  1677. // 1 = driver suspended
  1678. //
  1679. // OID_WW_GEN_BASESTATION_ID
  1680. //
  1681. typedef NDIS_VAR_DATA_DESC WW_BASESTATION_ID;
  1682. //
  1683. // OID_WW_GEN_CHANNEL_ID
  1684. //
  1685. typedef NDIS_VAR_DATA_DESC WW_CHANNEL_ID;
  1686. //
  1687. // OID_WW_GEN_ENCRYPTION_STATE
  1688. //
  1689. typedef BOOLEAN WW_ENCRYPTION_STATE; // 0 = if encryption is disabled
  1690. // 1 = if encryption is enabled
  1691. //
  1692. // OID_WW_GEN_CHANNEL_QUALITY
  1693. //
  1694. typedef INT WW_CHANNEL_QUALITY; // 0 = Not in network contact,
  1695. // 1-100 = Quality of Channel (100 is highest quality).
  1696. // -1 = channel quality is unknown
  1697. //
  1698. // OID_WW_GEN_REGISTRATION_STATUS
  1699. //
  1700. typedef INT WW_REGISTRATION_STATUS; // 0 = Registration denied
  1701. // 1 = Registration pending
  1702. // 2 = Registered
  1703. // -1 = unknown registration status
  1704. //
  1705. // OID_WW_GEN_RADIO_LINK_SPEED
  1706. //
  1707. typedef ULONG WW_RADIO_LINK_SPEED; // Bits per second.
  1708. //
  1709. // OID_WW_GEN_LATENCY
  1710. //
  1711. typedef ULONG WW_LATENCY; // milliseconds
  1712. //
  1713. // OID_WW_GEN_BATTERY_LEVEL
  1714. //
  1715. typedef INT WW_BATTERY_LEVEL; // 0-100 = battery level in percentage
  1716. // (100=fully charged)
  1717. // -1 = unknown battery level.
  1718. //
  1719. // OID_WW_GEN_EXTERNAL_POWER
  1720. //
  1721. typedef INT WW_EXTERNAL_POWER; // 0 = no external power connected
  1722. // 1 = external power connected
  1723. // -1 = unknown
  1724. //
  1725. // Ping Address structure
  1726. //
  1727. typedef struct _WW_PING_ADDRESS
  1728. {
  1729. WW_ADDRESS_FORMAT Format; // IN
  1730. NDIS_VAR_DATA_DESC TargetAddress; // IN
  1731. UINT uTime; // OUT in milleseconds
  1732. } WW_PING_ADDRESS;
  1733. //
  1734. // RSSI structure
  1735. //
  1736. typedef struct _WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR
  1737. {
  1738. INT iDecibels; // value in DB
  1739. INT iFactor; // power of 10
  1740. } WW_RECEIVE_SIGNAL_STRENGTH_INDICATOR;
  1741. //
  1742. // SIM status structure
  1743. //
  1744. typedef struct _WW_SIM_STATUS
  1745. {
  1746. BOOLEAN bHasSIM; // TRUE = SIM required
  1747. BOOLEAN bBlocked; // TRUE = SIM PIN access blocked
  1748. BOOLEAN bLocked; // TRUE = PIN need to access device
  1749. BOOLEAN bInitialized; // TRUE = SIM initialized
  1750. UINT uCountdown; // = remaining number of attempt to
  1751. // enter correct PIN
  1752. } WW_SIM_STATUS;
  1753. //
  1754. // enable SIM PIN structure
  1755. //
  1756. typedef struct _WW_ENABLE_SIM_PIN
  1757. {
  1758. BOOLEAN bEnabled; // TRUE = security feature of SIM enabled
  1759. NDIS_VAR_DATA_DESC CurrentPIN; // describes buffer containing PIN value
  1760. } WW_ENABLE_SIM_PIN;
  1761. //
  1762. // SIM PIN structure
  1763. //
  1764. typedef struct _WW_CHANGE_SIM_PIN
  1765. {
  1766. NDIS_VAR_DATA_DESC OldPIN; // describes buffer containing OLD PIN
  1767. NDIS_VAR_DATA_DESC NewPIN; // describes buffer containing new PIN
  1768. } WW_CHANGE_SIM_PIN;
  1769. //
  1770. // new change SIM PUK structure
  1771. //
  1772. typedef NDIS_VAR_DATA_DESC WW_ENABLE_SIM_PUK;
  1773. //
  1774. // OID_WW_MET_FUNCTION
  1775. //
  1776. typedef NDIS_VAR_DATA_DESC WW_MET_FUNCTION;
  1777. //
  1778. // OID_WW_TAC_COMPRESSION
  1779. //
  1780. typedef BOOLEAN WW_TAC_COMPRESSION; // Determines whether or not network level compression
  1781. // is being used.
  1782. //
  1783. // OID_WW_TAC_SET_CONFIG
  1784. //
  1785. // The DataTAC OID that referenced this object has been superceeded. The
  1786. // definition is still included for historical purposes only and should not
  1787. // be used
  1788. //
  1789. typedef struct _WW_TAC_SETCONFIG
  1790. {
  1791. NDIS_VAR_DATA_DESC RCV_MODE; // Select confirmed/unconfirmed
  1792. // receive mode
  1793. NDIS_VAR_DATA_DESC TX_CONTROL; // Enable or Disable transmitter
  1794. NDIS_VAR_DATA_DESC RX_CONTROL; // Enable or disable radio in
  1795. // the modem
  1796. NDIS_VAR_DATA_DESC FLOW_CONTROL; // Set flow control between DTE
  1797. // and DCE
  1798. NDIS_VAR_DATA_DESC RESET_CNF; // Reset configuration to
  1799. // default
  1800. NDIS_VAR_DATA_DESC READ_CNF; // Read the current
  1801. // configuration
  1802. } WW_TAC_SETCONFIG, *PWW_TAC_SETCONFIG;
  1803. //
  1804. // OID_WW_TAC_GET_STATUS
  1805. //
  1806. // The DataTAC OID that referenced this object has been superceeded. The
  1807. // definition is still included for historical purposes only and should not
  1808. // be used
  1809. //
  1810. typedef struct _WW_TAC_GETSTATUS
  1811. {
  1812. BOOLEAN Action; // Set = Execute command.
  1813. NDIS_VAR_DATA_DESC Command;
  1814. NDIS_VAR_DATA_DESC Option;
  1815. NDIS_VAR_DATA_DESC Response; // The response to the requested command
  1816. // - max. length of string is 256 octets.
  1817. } WW_TAC_GETSTATUS, *PWW_TAC_GETSTATUS;
  1818. //
  1819. // OID_WW_TAC_USER_HEADER
  1820. //
  1821. typedef NDIS_VAR_DATA_DESC WW_TAC_USERHEADER; // This will hold the user header - Max. 64 octets.
  1822. // August 25, 1998 @14:16 EDT by Emil Sturniolo - WRQ
  1823. // added new DataTAC get response structure
  1824. typedef struct _WW_TAC_GET_RESPONSE
  1825. {
  1826. UINT SDUTag; // previousl assigned token
  1827. NDIS_VAR_DATA_DESC Response; // response - max 2048 octets
  1828. } WW_TAC_GET_RESPONSE;
  1829. //
  1830. // DataTAC disable receiver structure
  1831. //
  1832. typedef INT WW_TAC_DISABLE_RECEIVER; // 0 = receiver enabled
  1833. // 1 = receiver disabled
  1834. // -1 = state of recevier unknown
  1835. //
  1836. // DataTAC antenna mode structure
  1837. //
  1838. typedef INT WW_TAC_ANTENNA_MODE; // 0 = Automatic Antenna selection
  1839. // 1 = Always use primary antenna
  1840. // 2 = Always use secondary antenna
  1841. // -1 = Antenna algorithm unknown
  1842. //
  1843. // DataTAC get response structure
  1844. //
  1845. typedef INT WW_TAC_FLUSH_DATA; // 1 = flush buffered data destine to net
  1846. // 2 = flush buffered data received from net
  1847. // 3 = flush all buffered data
  1848. //
  1849. // DataTAC shutdown device structure
  1850. //
  1851. typedef INT WW_TAC_SHUTDOWN_DEVICE; // 0 = device enabled
  1852. // 1 = device disabled
  1853. // -1 = state of device unknown
  1854. //
  1855. // DataTAC transmitter keyed structure
  1856. //
  1857. typedef BOOLEAN WW_TAC_TRANSMITTER_KEYED;
  1858. //
  1859. // added new DataTAC system table structure
  1860. //
  1861. typedef struct _WW_TAC_SYSTEM_TABLE
  1862. {
  1863. UINT SystemCount;
  1864. UCHAR ContryTable[32];
  1865. UCHAR PrefixTable[32];
  1866. UCHAR IDTable[32];
  1867. } WW_TAC_SYSTEM_TABLE;
  1868. //
  1869. // added new DataTAC channel table structure
  1870. //
  1871. typedef struct _WW_TAC_CHANNEL_TABLE
  1872. {
  1873. UINT ChannelCount;
  1874. UCHAR ChannelTable[64];
  1875. UCHAR AttrTable[64];
  1876. } WW_TAC_CHANNEL_TABLE;
  1877. //
  1878. // added new DataTAC statistics structure
  1879. //
  1880. typedef NDIS_VAR_DATA_DESC WW_TAC_STATISTICS;
  1881. //
  1882. // OID_WW_ARD_SNDCP
  1883. //
  1884. // The ARDIS OIDs that referenced these object have been deprecated and merged
  1885. // with the new DataTAC objects. Their definition are still included for
  1886. // historical purposes only and should not be used.
  1887. //
  1888. typedef struct _WW_ARD_SNDCP
  1889. {
  1890. NDIS_VAR_DATA_DESC Version; // The version of SNDCP protocol supported.
  1891. INT BlockSize; // The block size used for SNDCP
  1892. INT Window; // The window size used in SNDCP
  1893. } WW_ARD_SNDCP, *PWW_ARD_SNDCP;
  1894. //
  1895. // OID_WW_ARD_TMLY_MSG
  1896. //
  1897. typedef BOOLEAN WW_ARD_CHANNEL_STATUS; // The current status of the inbound RF Channel.
  1898. //
  1899. // OID_WW_ARD_DATAGRAM
  1900. //
  1901. typedef struct _WW_ARD_DATAGRAM
  1902. {
  1903. BOOLEAN LoadLevel; // Byte that contains the load level info.
  1904. INT SessionTime; // Datagram session time remaining.
  1905. NDIS_VAR_DATA_DESC HostAddr; // Host address.
  1906. NDIS_VAR_DATA_DESC THostAddr; // Test host address.
  1907. } WW_ARD_DATAGRAM, *PWW_ARD_DATAGRAM;
  1908. //
  1909. // OID_WW_CDPD_SPNI
  1910. //
  1911. typedef struct _WW_CDPD_SPNI
  1912. {
  1913. ULONG SPNI[10]; //10 16-bit service provider network IDs
  1914. INT OperatingMode; // 0 = ignore SPNI,
  1915. // 1 = require SPNI from list,
  1916. // 2 = prefer SPNI from list.
  1917. // 3 = exclude SPNI from list.
  1918. } WW_CDPD_SPNI, *PWW_CDPD_SPNI;
  1919. //
  1920. // OID_WW_CDPD_WASI
  1921. //
  1922. typedef struct _WW_CDPD_WIDE_AREA_SERVICE_ID
  1923. {
  1924. ULONG WASI[10]; //10 16-bit wide area service IDs
  1925. INT OperatingMode; // 0 = ignore WASI,
  1926. // 1 = Require WASI from list,
  1927. // 2 = prefer WASI from list
  1928. // 3 = exclude WASI from list.
  1929. } WW_CDPD_WIDE_AREA_SERVICE_ID, *PWW_CDPD_WIDE_AREA_SERVICE_ID;
  1930. //
  1931. // OID_WW_CDPD_AREA_COLOR
  1932. //
  1933. typedef INT WW_CDPD_AREA_COLOR;
  1934. //
  1935. // OID_WW_CDPD_TX_POWER_LEVEL
  1936. //
  1937. typedef ULONG WW_CDPD_TX_POWER_LEVEL;
  1938. //
  1939. // OID_WW_CDPD_EID
  1940. //
  1941. typedef NDIS_VAR_DATA_DESC WW_CDPD_EID;
  1942. //
  1943. // OID_WW_CDPD_HEADER_COMPRESSION
  1944. //
  1945. typedef INT WW_CDPD_HEADER_COMPRESSION; // 0 = no header compression,
  1946. // 1 = always compress headers,
  1947. // 2 = compress headers if MD-IS does
  1948. // -1 = unknown
  1949. //
  1950. // OID_WW_CDPD_DATA_COMPRESSION
  1951. //
  1952. typedef INT WW_CDPD_DATA_COMPRESSION; // 0 = no data compression,
  1953. // 1 = data compression enabled
  1954. // -1 = unknown
  1955. //
  1956. // OID_WW_CDPD_CHANNEL_SELECT
  1957. //
  1958. typedef struct _WW_CDPD_CHANNEL_SELECT
  1959. {
  1960. ULONG ChannelID; // channel number
  1961. ULONG fixedDuration; // duration in seconds
  1962. } WW_CDPD_CHANNEL_SELECT, *PWW_CDPD_CHANNEL_SELECT;
  1963. //
  1964. // OID_WW_CDPD_CHANNEL_STATE
  1965. //
  1966. typedef enum _WW_CDPD_CHANNEL_STATE
  1967. {
  1968. CDPDChannelNotAvail,
  1969. CDPDChannelScanning,
  1970. CDPDChannelInitAcquired,
  1971. CDPDChannelAcquired,
  1972. CDPDChannelSleeping,
  1973. CDPDChannelWaking,
  1974. CDPDChannelCSDialing,
  1975. CDPDChannelCSRedial,
  1976. CDPDChannelCSAnswering,
  1977. CDPDChannelCSConnected,
  1978. CDPDChannelCSSuspended
  1979. } WW_CDPD_CHANNEL_STATE, *PWW_CDPD_CHANNEL_STATE;
  1980. //
  1981. // OID_WW_CDPD_NEI
  1982. //
  1983. typedef enum _WW_CDPD_NEI_FORMAT
  1984. {
  1985. CDPDNeiIPv4,
  1986. CDPDNeiCLNP,
  1987. CDPDNeiIPv6
  1988. } WW_CDPD_NEI_FORMAT, *PWW_CDPD_NEI_FORMAT;
  1989. typedef enum _WW_CDPD_NEI_TYPE
  1990. {
  1991. CDPDNeiIndividual,
  1992. CDPDNeiMulticast,
  1993. CDPDNeiBroadcast
  1994. } WW_CDPD_NEI_TYPE;
  1995. typedef struct _WW_CDPD_NEI
  1996. {
  1997. ULONG uNeiIndex;
  1998. WW_CDPD_NEI_FORMAT NeiFormat;
  1999. WW_CDPD_NEI_TYPE NeiType;
  2000. WORD NeiGmid; // group member identifier, only
  2001. // meaningful if NeiType ==
  2002. // CDPDNeiMulticast
  2003. NDIS_VAR_DATA_DESC NeiAddress;
  2004. } WW_CDPD_NEI;
  2005. //
  2006. // OID_WW_CDPD_NEI_STATE
  2007. //
  2008. typedef enum _WW_CDPD_NEI_STATE
  2009. {
  2010. CDPDUnknown,
  2011. CDPDRegistered,
  2012. CDPDDeregistered
  2013. } WW_CDPD_NEI_STATE, *PWW_CDPD_NEI_STATE;
  2014. typedef enum _WW_CDPD_NEI_SUB_STATE
  2015. {
  2016. CDPDPending, // Registration pending
  2017. CDPDNoReason, // Registration denied - no reason given
  2018. CDPDMDISNotCapable, // Registration denied - MD-IS not capable of
  2019. // handling M-ES at this time
  2020. CDPDNEINotAuthorized, // Registration denied - NEI is not authorized to
  2021. // use this subnetwork
  2022. CDPDInsufficientAuth, // Registration denied - M-ES gave insufficient
  2023. // authentication credentials
  2024. CDPDUnsupportedAuth, // Registration denied - M-ES gave unsupported
  2025. // authentication credentials
  2026. CDPDUsageExceeded, // Registration denied - NEI has exceeded usage
  2027. // limitations
  2028. CDPDDeniedThisNetwork // Registration denied on this network, service
  2029. // may be obtained on alternate Service Provider
  2030. // network
  2031. } WW_CDPD_NEI_SUB_STATE;
  2032. typedef struct _WW_CDPD_NEI_REG_STATE
  2033. {
  2034. ULONG uNeiIndex;
  2035. WW_CDPD_NEI_STATE NeiState;
  2036. WW_CDPD_NEI_SUB_STATE NeiSubState;
  2037. } WW_CDPD_NEI_REG_STATE, *PWW_CDPD_NEI_REG_STATE;
  2038. //
  2039. // OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER
  2040. //
  2041. typedef struct _WW_CDPD_SERVICE_PROVIDER_ID
  2042. {
  2043. ULONG SPI[10]; //10 16-bit service provider IDs
  2044. INT OperatingMode; // 0 = ignore SPI,
  2045. // 1 = require SPI from list,
  2046. // 2 = prefer SPI from list.
  2047. // 3 = SPI from list is excluded
  2048. } WW_CDPD_SERVICE_PROVIDER_ID, *PWW_CDPD_SERVICE_PROVIDER_ID;
  2049. //
  2050. // OID_WW_CDPD_SLEEP_MODE
  2051. //
  2052. typedef INT WW_CDPD_SLEEP_MODE;
  2053. //
  2054. // OID_WW_CDPD_TEI
  2055. //
  2056. typedef ULONG WW_CDPD_TEI;
  2057. //
  2058. // OID_WW_CDPD_CIRCUIT_SWITCHED
  2059. //
  2060. // The CDPD OID that referenced this object has been deprecated and superceeded
  2061. // by new discrete CDPD objects. The definition is still included for
  2062. // historical purposes only and should not be used.
  2063. //
  2064. typedef struct _WW_CDPD_CIRCUIT_SWITCHED
  2065. {
  2066. INT service_preference; // -1 = unknown,
  2067. // 0 = always use packet switched CDPD,
  2068. // 1 = always use CS CDPD via AMPS,
  2069. // 2 = always use CS CDPD via PSTN,
  2070. // 3 = use circuit switched via AMPS only
  2071. // when packet switched is not available.
  2072. // 4 = use packet switched only when circuit
  2073. // switched via AMPS is not available.
  2074. // 5 = device manuf. defined service
  2075. // preference.
  2076. // 6 = device manuf. defined service
  2077. // preference.
  2078. INT service_status; // -1 = unknown,
  2079. // 0 = packet switched CDPD,
  2080. // 1 = circuit switched CDPD via AMPS,
  2081. // 2 = circuit switched CDPD via PSTN.
  2082. INT connect_rate; // CS connection bit rate (bits per second).
  2083. // 0 = no active connection,
  2084. // -1 = unknown
  2085. // Dial code last used to dial.
  2086. NDIS_VAR_DATA_DESC dial_code[20];
  2087. ULONG sid; // Current AMPS system ID
  2088. INT a_b_side_selection; // -1 = unknown,
  2089. // 0 = no AMPS service
  2090. // 1 = AMPS "A" side channels selected
  2091. // 2 = AMPS "B" side channels selected
  2092. INT AMPS_channel; // -1= unknown
  2093. // 0 = no AMPS service.
  2094. // 1-1023 = AMPS channel number in use
  2095. ULONG action; // 0 = no action
  2096. // 1 = suspend (hangup)
  2097. // 2 = dial
  2098. // Default dial code for CS CDPD service
  2099. // encoded as specified in the CS CDPD
  2100. // implementor guidelines.
  2101. NDIS_VAR_DATA_DESC default_dial[20];
  2102. // Number for the CS CDPD network to call
  2103. // back the mobile, encoded as specified in
  2104. // the CS CDPD implementor guidelines.
  2105. NDIS_VAR_DATA_DESC call_back[20];
  2106. ULONG sid_list[10]; // List of 10 16-bit preferred AMPS
  2107. // system IDs for CS CDPD.
  2108. ULONG inactivity_timer; // Wait time after last data before dropping
  2109. // call.
  2110. // 0-65535 = inactivity time limit (seconds).
  2111. ULONG receive_timer; // secs. per CS-CDPD Implementor Guidelines.
  2112. ULONG conn_resp_timer; // secs. per CS-CDPD Implementor Guidelines.
  2113. ULONG reconn_resp_timer; // secs. per CS-CDPD Implementor Guidelines.
  2114. ULONG disconn_timer; // secs. per CS-CDPD Implementor Guidelines.
  2115. ULONG NEI_reg_timer; // secs. per CS-CDPD Implementor Guidelines.
  2116. ULONG reconn_retry_timer; // secs. per CS-CDPD Implementor Guidelines.
  2117. ULONG link_reset_timer; // secs. per CS-CDPD Implementor Guidelines.
  2118. ULONG link_reset_ack_timer; // secs. per CS-CDPD Implementor Guidelines.
  2119. ULONG n401_retry_limit; // per CS-CDPD Implementor Guidelines.
  2120. ULONG n402_retry_limit; // per CS-CDPD Implementor Guidelines.
  2121. ULONG n404_retry_limit; // per CS-CDPD Implementor Guidelines.
  2122. ULONG n405_retry_limit; // per CS-CDPD Implementor Guidelines.
  2123. } WW_CDPD_CIRCUIT_SWITCHED, *WW_PCDPD_CIRCUIT_SWITCHED;
  2124. typedef ULONG WW_CDPD_RSSI;
  2125. //
  2126. // cs-cdpd service preference structure
  2127. //
  2128. typedef INT WW_CDPD_CS_SERVICE_PREFERENCE; // 0 = use packet switched CDPD only
  2129. // 1 = use CS-CDPD via AMPS only
  2130. // 2 = use CS-CDPD via PSTN only
  2131. // 3 = use CS-CDPD via AMPS only
  2132. // when packet switched is N/A
  2133. // 4 = use packet switched CDPD only
  2134. // when CS-CDPD via AMPS is N/A
  2135. // 5 = Device manufacture defined
  2136. // service preference
  2137. // 6 = device manufacture defined
  2138. // service preference
  2139. // -1 = unknown
  2140. //
  2141. // cs-cdpd service status structure
  2142. //
  2143. typedef INT WW_CDPD_CS_SERVICE_STATUS; // 0 = Packet switched CDPD
  2144. // 1 = CS-CDPD via AMPS
  2145. // 2 = CS-CDPD via PSTN
  2146. // -1 = unknown
  2147. //
  2148. // cs-cdpd info structure
  2149. //
  2150. typedef struct _WW_CDPD_CS_INFO {
  2151. INT ConnectRage; // 0 = no active connection
  2152. // -1 = unknown
  2153. // all other values represent BPS
  2154. NDIS_VAR_DATA_DESC DialCode; // describes buffer of last dial code
  2155. UINT SID; // Current AMPS System ID
  2156. INT ABSideSelection; // 0 = no AMPS service
  2157. // 1 = AMPS "A" side channel selected
  2158. // 2 = AMPS "B" side channel selected
  2159. INT AMPSChannel; // 0 = no AMPS service
  2160. // 1-1023 = current AMPS channel
  2161. // -1 = Unknown
  2162. // all other values reserved
  2163. } WW_CDPD_CS_INFO;
  2164. //
  2165. // cs-cdpd suspend structure
  2166. //
  2167. typedef UINT WW_CDPD_CS_SUSPEND; // 0 = nop; 1 = hang up
  2168. //
  2169. // cs-cdpd default dial code structure
  2170. //
  2171. typedef NDIS_VAR_DATA_DESC WW_CDPD_DEFAULT_DIAL_CODE; // max 20 octets
  2172. //
  2173. // cs-cdpd callback structure
  2174. //
  2175. typedef struct _WW_CDPD_CS_CALLBACK
  2176. {
  2177. UINT Enabled; // 0 = disable; 1 = enable; -1 = unknown
  2178. NDIS_VAR_DATA_DESC Number; // descibes buffer contianing dial code
  2179. // max 20 octets
  2180. } WW_CDPD_CS_CALLBACK;
  2181. //
  2182. // cs-cdpd system id list structure
  2183. //
  2184. typedef struct _WW_CDPD_CS_SID_LIST
  2185. {
  2186. UINT AMPSystemId[10];
  2187. } WW_CDPD_CS_SID_LIST;
  2188. //
  2189. // cs-cdpd configuration structure
  2190. //
  2191. typedef struct _WW_CDPD_CS_CONFIGURATION
  2192. {
  2193. UINT InactivityTimer; // in seconds
  2194. UINT ReceiveTimer; // in seconds
  2195. UINT ConnResTimer; // in seconds
  2196. UINT ReconnRespTimer; // in seconds
  2197. UINT DisconnTimer; // in seconds
  2198. UINT NEIRegTimer; // in seconds
  2199. UINT ReconnRetryTimer; // in seconds
  2200. UINT LinkResetTimer; // in seconds
  2201. UINT LinkResetAckTimer; // in seconds
  2202. UINT n401RetryLimit; // per CS-CDPD Implementers guidelines
  2203. UINT n402RetryLimit; // per CS-CDPD Implementers guidelines
  2204. UINT n404RetryLimit; // per CS-CDPD Implementers guidelines
  2205. UINT n405RetryLimit; // per CS-CDPD Implementers guidelines
  2206. } WW_CDPD_CS_CONFIGURATION;
  2207. //
  2208. // OID_WW_PIN_LOC_AUTHORIZE
  2209. //
  2210. // The Pin Point OIDs that referenced the structures below have been
  2211. // deprecated from the PCCA STD-201 standard. Their definitions are still
  2212. // included for historical purposes only and should not be used.
  2213. //
  2214. typedef INT WW_PIN_AUTHORIZED; // 0 = unauthorized
  2215. // 1 = authorized
  2216. // -1 = unknown
  2217. //
  2218. // OID_WW_PIN_LAST_LOCATION
  2219. // OID_WW_PIN_LOC_FIX
  2220. //
  2221. typedef struct _WW_PIN_LOCATION
  2222. {
  2223. INT Latitude; // Latitude in hundredths of a second
  2224. INT Longitude; // Longitude in hundredths of a second
  2225. INT Altitude; // Altitude in feet
  2226. INT FixTime; // Time of the location fix, since midnight, local time (of the
  2227. // current day), in tenths of a second
  2228. INT NetTime; // Current local network time of the current day, since midnight,
  2229. // in tenths of a second
  2230. INT LocQuality; // 0-100 = location quality
  2231. INT LatReg; // Latitude registration offset, in hundredths of a second
  2232. INT LongReg; // Longitude registration offset, in hundredths of a second
  2233. INT GMTOffset; // Offset in minutes of the local time zone from GMT
  2234. } WW_PIN_LOCATION, *PWW_PIN_LOCATION;
  2235. //
  2236. // The following is set on a per-packet basis as OOB data with NdisClassWirelessWanMbxMailbox
  2237. //
  2238. typedef ULONG WW_MBX_MAILBOX_FLAG; // 1 = set mailbox flag, 0 = do not set mailbox flag
  2239. //
  2240. // OID_WW_MBX_SUBADDR
  2241. //
  2242. typedef struct _WW_MBX_PMAN
  2243. {
  2244. BOOLEAN ACTION; // 0 = Login PMAN, 1 = Logout PMAN
  2245. ULONG MAN;
  2246. UCHAR PASSWORD[8]; // Password should be null for Logout and indications.
  2247. // Maximum length of password is 8 chars.
  2248. } WW_MBX_PMAN, *PWW_MBX_PMAN;
  2249. //
  2250. // OID_WW_MBX_FLEXLIST
  2251. //
  2252. typedef struct _WW_MBX_FLEXLIST
  2253. {
  2254. INT count; // Number of MAN entries used.
  2255. // -1=unknown.
  2256. ULONG MAN[7]; // List of MANs.
  2257. } WW_MBX_FLEXLIST;
  2258. //
  2259. // OID_WW_MBX_GROUPLIST
  2260. //
  2261. typedef struct _WW_MBX_GROUPLIST
  2262. {
  2263. INT count; // Number of MAN entries used.
  2264. // -1=unknown.
  2265. ULONG MAN[15]; // List of MANs.
  2266. } WW_MBX_GROUPLIST;
  2267. //
  2268. // OID_WW_MBX_TRAFFIC_AREA
  2269. //
  2270. typedef enum _WW_MBX_TRAFFIC_AREA
  2271. {
  2272. unknown_traffic_area, // The driver has no information about the current traffic area.
  2273. in_traffic_area, // Mobile unit has entered a subscribed traffic area.
  2274. in_auth_traffic_area, // Mobile unit is outside traffic area but is authorized.
  2275. unauth_traffic_area // Mobile unit is outside traffic area but is un-authorized.
  2276. } WW_MBX_TRAFFIC_AREA;
  2277. //
  2278. // OID_WW_MBX_LIVE_DIE
  2279. //
  2280. typedef INT WW_MBX_LIVE_DIE; // 0 = DIE last received
  2281. // 1 = LIVE last received
  2282. // -1 = unknown
  2283. //
  2284. // OID_WW_MBX_TEMP_DEFAULTLIST
  2285. //
  2286. typedef struct _WW_MBX_CHANNEL_PAIR
  2287. {
  2288. ULONG Mobile_Tx;
  2289. ULONG Mobile_Rx;
  2290. } WW_MBX_CHANNEL_PAIR, *PWW_MBX_CHANNEL_PAIR;
  2291. typedef struct _WW_MBX_TEMPDEFAULTLIST
  2292. {
  2293. ULONG Length;
  2294. WW_MBX_CHANNEL_PAIR ChannelPair[1];
  2295. } WW_MBX_TEMPDEFAULTLIST, *WW_PMBX_TEMPDEFAULTLIST;
  2296. #endif // WIRELESS_WAN
  2297. //
  2298. //
  2299. // Base types that were redefined for BPC
  2300. //
  2301. // BPC_FILETIME is used exactly like FILETIME in Win32
  2302. //
  2303. // BPC_HANDLE is opaque to everything except the Miniport
  2304. //
  2305. typedef struct _BPC_FILETIME
  2306. {
  2307. ULONG dwLowDateTime;
  2308. ULONG dwHighDateTime;
  2309. } BPC_FILETIME, *PBPC_FILETIME;
  2310. typedef PVOID BPC_HANDLE;
  2311. //
  2312. // BPC Extension Globals
  2313. //
  2314. //
  2315. #define BPC_MIN_DIMENSION 1
  2316. #define BPC_MAX_BUFFER_SIZE 64
  2317. #define BPC_MIN_BUFFER_SIZE 4
  2318. #define BPC_DEVICE_ANY ((BPC_HANDLE) 0xFFFFFFFF)
  2319. //
  2320. // Buffer indicate reason codes
  2321. //
  2322. //
  2323. typedef enum _NDIS_BPC_INDICATE_REASON
  2324. {
  2325. bpcBufferFull = 0,
  2326. bpcBufferForced,
  2327. bpcBufferTimeOut,
  2328. bpcBufferDiscontinuity,
  2329. bpcBufferOverflow,
  2330. bpcBufferStatusEvent
  2331. } NDIS_BPC_INDICATE_REASON, *PNDIS_BPC_INDICATE_REASON;
  2332. //
  2333. // BPC Stream Types
  2334. //
  2335. #define BPC_STREAM_TYPE_GENERIC_MIN 0x01000000
  2336. #define BPC_STREAM_TYPE_RAW 0x01000000
  2337. #define BPC_STREAM_TYPE_MPT_128 0x01000001
  2338. #define BPC_STREAM_TYPE_MPT_128_CRC 0x01000002
  2339. #define BPC_STREAM_TYPE_IP 0x01000003
  2340. #define BPC_STREAM_TYPE_PROVIDER_MIN 0x02000000
  2341. #define BPC_STREAM_TYPE_PROVIDER_MAX 0x02ffffff
  2342. #define BPC_STREAM_TYPE_ADAPTER_MIN 0x03000000
  2343. #define BPC_STREAM_TYPE_ADAPTER_MAX 0x03ffffff
  2344. //
  2345. // BPC Adapter Capabilities
  2346. //
  2347. typedef struct _NDIS_BPC_ADAPTER_CAPS
  2348. {
  2349. ULONG ulBPCMajorRev;
  2350. ULONG ulBPCMinorRev;
  2351. ULONG ulcHSDataDevices;
  2352. ULONG ulbpsHSDeviceMax;
  2353. ULONG ulcLSDataDevices;
  2354. ULONG ulbpsLSDeviceMax;
  2355. ULONG ulcTuningDevices;
  2356. ULONG ulcbLargestStatus;
  2357. ULONG ulVendorId;
  2358. ULONG ulAdapterId;
  2359. GUID guidProvider;
  2360. } NDIS_BPC_ADAPTER_CAPS, *PNDIS_BPC_ADAPTER_CAPS;
  2361. //
  2362. // BPC Device Enumeration
  2363. //
  2364. typedef struct _NDIS_BPC_DEVICES
  2365. {
  2366. ULONG ulcDevices;
  2367. BPC_HANDLE rgnhDevices[BPC_MIN_DIMENSION];
  2368. } NDIS_BPC_DEVICES, *PNDIS_BPC_DEVICES;
  2369. #define CbDevices(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICES, rgnhDevices) + (cnt) * sizeof(BPC_HANDLE))
  2370. //
  2371. // BPC Device Capabilities Structure
  2372. //
  2373. typedef struct NDIS_BPC_DEVICE_CAPS
  2374. {
  2375. BPC_HANDLE nhDevice;
  2376. ULONG ulBPCCaps;
  2377. ULONG ulbpsMax;
  2378. ULONG ulcStreamTypes;
  2379. ULONG rgulStreamTypes[BPC_MIN_DIMENSION];
  2380. } NDIS_BPC_DEVICE_CAPS, *PNDIS_BPC_DEVICE_CAPS;
  2381. #define CbDeviceCaps(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_CAPS, rgulStreamTypes) + (cnt) * sizeof(ULONG))
  2382. //
  2383. // BPC Device Capability Definitions
  2384. // (ie Flags that can be set in ulBPCCaps
  2385. //
  2386. #define BPCCapBusMasteredData 0x01
  2387. #define BPCCapIndependentTuner 0x02
  2388. #define BPCCapExternalDataBus 0x04
  2389. #define BPCCapLowSpeedData 0x10
  2390. #define BPCCapHighSpeedData 0x20
  2391. //
  2392. // BPC Device Settings Structure
  2393. //
  2394. typedef struct NDIS_BPC_DEVICE_SETTINGS
  2395. {
  2396. BPC_HANDLE nhDevice;
  2397. ULONG ulBPCCaps;
  2398. ULONG ulcConnections;
  2399. BOOLEAN fEnabled;
  2400. ULONG ulStreamType;
  2401. ULONG ulcbAddressConnection;
  2402. ULONG rgulAddressConnection[BPC_MIN_DIMENSION];
  2403. } NDIS_BPC_DEVICE_SETTINGS, *PNDIS_BPC_DEVICE_SETTINGS;
  2404. #define CbDeviceSettings(cnt) (FIELD_OFFSET(NDIS_BPC_DEVICE_SETTINGS, rgulAddressConnection) + (cnt) * sizeof(ULONG))
  2405. //
  2406. // BPC Connection State Definitions
  2407. // (ie Acceptable values for ulState)
  2408. //
  2409. #define BPC_CONNECT_STATE_UNCOMMITTED 0
  2410. #define BPC_CONNECT_STATE_QUEUED 1
  2411. #define BPC_CONNECT_STATE_ACTIVE 2
  2412. #define BPC_CONNECT_STATE_DISCONNECTING 3
  2413. //
  2414. // BPC Connections Status Structure
  2415. //
  2416. typedef struct NDIS_BPC_CONNECTION_STATUS
  2417. {
  2418. BPC_HANDLE nhConnection;
  2419. BPC_HANDLE nhDevice;
  2420. ULONG ulConnectPriority;
  2421. ULONG ulDisconnectPriority;
  2422. ULONG ulbpsAverage;
  2423. ULONG ulbpsBurst;
  2424. ULONG ulState;
  2425. BOOLEAN fEnabled;
  2426. } NDIS_BPC_CONNECTION_STATUS, *PNDIS_BPC_CONNECTION_STATUS;
  2427. //
  2428. // BPC Address Comparison Structure
  2429. //
  2430. typedef struct NDIS_BPC_ADDRESS_COMPARE
  2431. {
  2432. BOOLEAN fEqual;
  2433. ULONG ulcbFirstOffset;
  2434. ULONG ulcbFirstLength;
  2435. ULONG ulcbSecondOffset;
  2436. ULONG ulcbSecondLength;
  2437. } NDIS_BPC_ADDRESS_COMPARE, *PNDIS_BPC_ADDRESS_COMPARE;
  2438. //
  2439. // BPC Program Guide Types
  2440. //
  2441. // Currently there are no Generic BPC Program Guide types.
  2442. //
  2443. #define BPC_GUIDE_GENERIC_MIN 0x01000000
  2444. #define BPC_GUIDE_GENERIC_MAX 0x01ffffff
  2445. #define BPC_GUIDE_PROVIDER_MIN 0x02000000
  2446. #define BPC_GUIDE_PROVIDER_MAX 0x02ffffff
  2447. #define BPC_GUIDE_ADAPTER_MIN 0x03000000
  2448. #define BPC_GUIDE_ADAPTER_MAX 0x03ffffff
  2449. //
  2450. // BPC Program Guide Structure
  2451. //
  2452. typedef struct NDIS_BPC_PROGRAM_GUIDE
  2453. {
  2454. ULONG ulGuideType;
  2455. BPC_FILETIME ftLastUpdate;
  2456. ULONG ulChangeNumber;
  2457. ULONG ulcbGuideSize;
  2458. ULONG rgulGuideData[BPC_MIN_DIMENSION];
  2459. } NDIS_BPC_PROGRAM_GUIDE, *PNDIS_BPC_PROGRAM_GUIDE;
  2460. //
  2461. // BPC Extension Errors
  2462. // (ie Acceptable values for ulBPCError)
  2463. //
  2464. typedef enum _NDIS_BPC_ERROR
  2465. {
  2466. bpcErrorUnknownFailure = 0xc0ff0000,
  2467. bpcErrorHardwareFailure,
  2468. bpcErrorProviderFailure,
  2469. bpcErrorNoDataDevice,
  2470. bpcErrorNoTuningDevice,
  2471. bpcErrorDeviceNotCapable,
  2472. bpcErrorConflictingDevice,
  2473. bpcErrorConflictingCapability,
  2474. bpcErrorNoBufferMemory,
  2475. bpcErrorNoResources,
  2476. bpcErrorAdapterClosing,
  2477. bpcErrorConnectionClosing,
  2478. bpcErrorTooComplex,
  2479. bpcErrorProviderNotSupported,
  2480. bpcErrorUnknownProviderStructure,
  2481. bpcErrorAddressNotSupported,
  2482. bpcErrorInvalidAddress,
  2483. bpcErrorUnknownAdapterStructure
  2484. } NDIS_BPC_ERROR, *PNDIS_BPC_ERROR;
  2485. //
  2486. // BPC Last Error Structure
  2487. //
  2488. typedef struct NDIS_BPC_LAST_ERROR
  2489. {
  2490. ULONG ulErrorContext;
  2491. ULONG ulBPCError;
  2492. ULONG ulAdapterError;
  2493. ULONG ulAdapterContext;
  2494. } NDIS_BPC_LAST_ERROR, *PNDIS_BPC_LAST_ERROR;
  2495. //
  2496. // BPC Buffer Pool Request/Report Structure
  2497. //
  2498. typedef struct NDIS_BPC_POOL
  2499. {
  2500. BPC_HANDLE nhConnection;
  2501. ULONG ulcbPoolSize;
  2502. ULONG ulcbMaxBufferSize;
  2503. ULONG ulcbBufferReserved;
  2504. } NDIS_BPC_POOL, *PNDIS_BPC_POOL;
  2505. //
  2506. // BPC Provider and Adapter Specific Structures are defined in the
  2507. // BpcXXXX.H file which the Provider/Adapter Manufacturer supplies.
  2508. //
  2509. //
  2510. // BPC Connect Structure
  2511. //
  2512. typedef struct NDIS_BPC_CONNECT
  2513. {
  2514. BPC_HANDLE nhConnection;
  2515. BPC_HANDLE nhDevice;
  2516. ULONG ulConnectPriority;
  2517. ULONG ulDisconnectPriority;
  2518. BOOLEAN fImmediate;
  2519. ULONG ulcbAddress;
  2520. GUID guidProvider;
  2521. ULONG rgulAddress[BPC_MIN_DIMENSION];
  2522. } NDIS_BPC_CONNECT, *PNDIS_BPC_CONNECT;
  2523. #define CbConnect(cnt) (FIELD_OFFSET(NDIS_BPC_CONNECT, rgulAddress) + (cnt) * sizeof(ULONG))
  2524. //
  2525. // BPC Commit Connections Structure
  2526. //
  2527. typedef struct NDIS_BPC_COMMIT
  2528. {
  2529. ULONG ulcConnections;
  2530. BPC_HANDLE rgnhConnections[BPC_MIN_DIMENSION];
  2531. } NDIS_BPC_COMMIT, *PNDIS_BPC_COMMIT;
  2532. //
  2533. // BPC Disconnect Structure
  2534. //
  2535. typedef struct NDIS_BPC_DISCONNECT
  2536. {
  2537. BPC_HANDLE nhConnection;
  2538. } NDIS_BPC_DISCONNECT, *PNDIS_BPC_DISCONNECT;
  2539. //
  2540. // BPC Enable Connection Structure
  2541. //
  2542. typedef struct NDIS_BPC_CONNECTION_ENABLE
  2543. {
  2544. BPC_HANDLE nhConnection;
  2545. BOOLEAN fEnabled;
  2546. } NDIS_BPC_CONNECTION_ENABLE, *PNDIS_BPC_CONNECTION_ENABLE;
  2547. //
  2548. // BPC Pool Return Structure
  2549. //
  2550. typedef struct NDIS_BPC_POOL_RETURN
  2551. {
  2552. BPC_HANDLE nhConnection;
  2553. } NDIS_BPC_POOL_RETURN, *PNDIS_BPC_POOL_RETURN;
  2554. typedef struct NDIS_BPC_FORCE_RECEIVE
  2555. {
  2556. BPC_HANDLE nhConnection;
  2557. ULONG ulReasonCode;
  2558. } NDIS_BPC_FORCE_RECEIVE, *PNDIS_BPC_FORCE_RECEIVE;
  2559. //
  2560. // BPC Media Specific Information Structure
  2561. //
  2562. typedef struct NDIS_BPC_MEDIA_SPECIFIC_INFORMATION
  2563. {
  2564. BPC_HANDLE nhConnection; // The handle to the data device.
  2565. ULONG ulBPCStreamType; // The stream type of the data in packet
  2566. ULONG ulReasonCode; // The reason the buffer was indicated
  2567. PVOID pvMiniportReserved1;
  2568. ULONG ulMiniportReserved2;
  2569. } NDIS_BPC_MEDIA_SPECIFIC_INFORMATION, *PNDIS_BPC_MEDIA_SPECIFIC_INFORMATION;
  2570. //
  2571. // BPC Status Categories
  2572. //
  2573. #define BPC_CATEGORY_BPC 0x01000000
  2574. #define BPC_CATEGORY_PROVIDER 0x02000000
  2575. #define BPC_CATEGORY_ADAPTER 0x03000000
  2576. //
  2577. // BPC Status Types for Category BPC_CATEGORY_BPC
  2578. //
  2579. #define BPC_STATUS_CONNECTED 0x00000001
  2580. #define BPC_STATUS_QUEUED 0x00000002
  2581. #define BPC_STATUS_ACTIVE 0x00000003
  2582. #define BPC_STATUS_DISCONNECTED 0x00000004
  2583. #define BPC_STATUS_OVERFLOW 0x00000005
  2584. #define BPC_STATUS_DATA_STOP 0x00000006
  2585. #define BPC_STATUS_DATA_START 0x00000007
  2586. #define BPC_STATUS_DATA_ERROR 0x00000008
  2587. //
  2588. // BPC Status Indication Structure
  2589. //
  2590. typedef struct NDIS_BPC_STATUS
  2591. {
  2592. ULONG ulStatusCategory;
  2593. ULONG ulStatusType;
  2594. ULONG ulcbStatus;
  2595. ULONG rgulStatus;
  2596. } NDIS_BPC_STATUS, *PNDIS_BPC_STATUS;
  2597. //
  2598. // BPC Connection Status Structure
  2599. //
  2600. // All BPC Generic Connection Status package this structure
  2601. // in rgulStatus to indicate to which connection and device
  2602. // the status pertains.
  2603. //
  2604. typedef struct NDIS_BPC_STATUS_CONNECTION
  2605. {
  2606. BPC_HANDLE nhConnection;
  2607. BPC_HANDLE nhDevice;
  2608. } NDIS_BPC_STATUS_CONNECTED, *PNDIS_BPC_STATUS_CONNECTED;
  2609. #ifdef __cplusplus
  2610. }
  2611. #endif
  2612. //
  2613. // flags used for OID_GEN_MINIPORT_INFO
  2614. //
  2615. #define NDIS_MINIPORT_BUS_MASTER 0x00000001
  2616. #define NDIS_MINIPORT_WDM_DRIVER 0x00000002
  2617. #define NDIS_MINIPORT_SG_LIST 0x00000004
  2618. #define NDIS_MINIPORT_SUPPORTS_MEDIA_QUERY 0x00000008
  2619. #define NDIS_MINIPORT_INDICATES_PACKETS 0x00000010
  2620. #define NDIS_MINIPORT_IGNORE_PACKET_QUEUE 0x00000020
  2621. #define NDIS_MINIPORT_IGNORE_REQUEST_QUEUE 0x00000040
  2622. #define NDIS_MINIPORT_IGNORE_TOKEN_RING_ERRORS 0x00000080
  2623. #define NDIS_MINIPORT_INTERMEDIATE_DRIVER 0x00000100
  2624. #define NDIS_MINIPORT_IS_NDIS_5 0x00000200
  2625. #define NDIS_MINIPORT_IS_CO 0x00000400
  2626. #define NDIS_MINIPORT_DESERIALIZE 0x00000800
  2627. #define NDIS_MINIPORT_REQUIRES_MEDIA_POLLING 0x00001000
  2628. #define NDIS_MINIPORT_SUPPORTS_MEDIA_SENSE 0x00002000
  2629. #define NDIS_MINIPORT_NETBOOT_CARD 0x00004000
  2630. #define NDIS_MINIPORT_PM_SUPPORTED 0x00008000
  2631. #define NDIS_MINIPORT_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00010000
  2632. #define NDIS_MINIPORT_USES_SAFE_BUFFER_APIS 0x00020000
  2633. #define NDIS_MINIPORT_HIDDEN 0x00040000
  2634. #define NDIS_MINIPORT_SWENUM 0x00080000
  2635. #define NDIS_MINIPORT_SURPRISE_REMOVE_OK 0x00100000
  2636. #define NDIS_MINIPORT_NO_HALT_ON_SUSPEND 0x00200000
  2637. #define NDIS_MINIPORT_HARDWARE_DEVICE 0x00400000
  2638. #define NDIS_MINIPORT_SUPPORTS_CANCEL_SEND_PACKETS 0x00800000
  2639. #define NDIS_MINIPORT_64BITS_DMA 0x01000000
  2640. #define NDIS_MINIPORT_USE_NEW_BITS 0x02000000
  2641. #define NDIS_MINIPORT_EXCLUSIVE_INTERRUPT 0x04000000
  2642. #define NDIS_MINIPORT_SENDS_PACKET_ARRAY 0x08000000
  2643. #define NDIS_MINIPORT_FILTER_IM 0x10000000
  2644. #endif // _NTDDNDIS_