home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / ntddndis.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  83KB  |  2,768 lines

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