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

1276 lines
56 KiB

  1. /***************************************************************************
  2. Copyright (c) 1999 Microsoft Corporation
  3. Module Name:
  4. RNDIS.H
  5. Abstract:
  6. This module defines the Remote NDIS message structures.
  7. Environment:
  8. kernel mode only
  9. Notes:
  10. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  11. KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  12. IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  13. PURPOSE.
  14. Copyright (c) 1999 Microsoft Corporation. All Rights Reserved.
  15. Revision History:
  16. 2/8/99 : created
  17. Authors:
  18. ****************************************************************************/
  19. #ifndef _RNDIS_H_
  20. #define _RNDIS_H_
  21. //
  22. // Basic types
  23. //
  24. typedef UINT32 RNDIS_REQUEST_ID;
  25. typedef UINT32 RNDIS_HANDLE;
  26. typedef UINT32 RNDIS_STATUS;
  27. typedef UINT32 RNDIS_REQUEST_TYPE;
  28. typedef UINT32 RNDIS_OID;
  29. typedef UINT32 RNDIS_CLASS_ID;
  30. typedef UINT32 RNDIS_MEDIUM;
  31. typedef UINT32 *PRNDIS_REQUEST_ID;
  32. typedef UINT32 *PRNDIS_HANDLE;
  33. typedef UINT32 *PRNDIS_STATUS;
  34. typedef UINT32 *PRNDIS_REQUEST_TYPE;
  35. typedef UINT32 *PRNDIS_OID;
  36. typedef UINT32 *PRNDIS_CLASS_ID;
  37. typedef UINT32 *PRNDIS_MEDIUM;
  38. typedef UINT32 RNDIS_AF;
  39. //
  40. // Status codes
  41. //
  42. #ifndef STATUS_SUCCESS
  43. #define STATUS_SUCCESS (0x00000000L)
  44. #endif
  45. #ifndef STATUS_UNSUCCESSFUL
  46. #define STATUS_UNSUCCESSFUL (0xC0000001L)
  47. #endif
  48. #ifndef STATUS_PENDING
  49. #define STATUS_PENDING (0x00000103L)
  50. #endif
  51. #ifndef STATUS_INSUFFICIENT_RESOURCES
  52. #define STATUS_INSUFFICIENT_RESOURCES (0xC000009AL)
  53. #endif
  54. #ifndef STATUS_BUFFER_OVERFLOW
  55. #define STATUS_BUFFER_OVERFLOW (0x80000005L)
  56. #endif
  57. #ifndef STATUS_NOT_SUPPORTED
  58. #define STATUS_NOT_SUPPORTED (0xC00000BBL)
  59. #endif
  60. #define RNDIS_STATUS_SUCCESS ((RNDIS_STATUS)STATUS_SUCCESS)
  61. #define RNDIS_STATUS_PENDING ((RNDIS_STATUS)STATUS_PENDING)
  62. #define RNDIS_STATUS_NOT_RECOGNIZED ((RNDIS_STATUS)0x00010001L)
  63. #define RNDIS_STATUS_NOT_COPIED ((RNDIS_STATUS)0x00010002L)
  64. #define RNDIS_STATUS_NOT_ACCEPTED ((RNDIS_STATUS)0x00010003L)
  65. #define RNDIS_STATUS_CALL_ACTIVE ((RNDIS_STATUS)0x00010007L)
  66. #define RNDIS_STATUS_ONLINE ((RNDIS_STATUS)0x40010003L)
  67. #define RNDIS_STATUS_RESET_START ((RNDIS_STATUS)0x40010004L)
  68. #define RNDIS_STATUS_RESET_END ((RNDIS_STATUS)0x40010005L)
  69. #define RNDIS_STATUS_RING_STATUS ((RNDIS_STATUS)0x40010006L)
  70. #define RNDIS_STATUS_CLOSED ((RNDIS_STATUS)0x40010007L)
  71. #define RNDIS_STATUS_WAN_LINE_UP ((RNDIS_STATUS)0x40010008L)
  72. #define RNDIS_STATUS_WAN_LINE_DOWN ((RNDIS_STATUS)0x40010009L)
  73. #define RNDIS_STATUS_WAN_FRAGMENT ((RNDIS_STATUS)0x4001000AL)
  74. #define RNDIS_STATUS_MEDIA_CONNECT ((RNDIS_STATUS)0x4001000BL)
  75. #define RNDIS_STATUS_MEDIA_DISCONNECT ((RNDIS_STATUS)0x4001000CL)
  76. #define RNDIS_STATUS_HARDWARE_LINE_UP ((RNDIS_STATUS)0x4001000DL)
  77. #define RNDIS_STATUS_HARDWARE_LINE_DOWN ((RNDIS_STATUS)0x4001000EL)
  78. #define RNDIS_STATUS_INTERFACE_UP ((RNDIS_STATUS)0x4001000FL)
  79. #define RNDIS_STATUS_INTERFACE_DOWN ((RNDIS_STATUS)0x40010010L)
  80. #define RNDIS_STATUS_MEDIA_BUSY ((RNDIS_STATUS)0x40010011L)
  81. #define RNDIS_STATUS_MEDIA_SPECIFIC_INDICATION ((RNDIS_STATUS)0x40010012L)
  82. #define RNDIS_STATUS_WW_INDICATION RNDIS_STATUS_MEDIA_SPECIFIC_INDICATION
  83. #define RNDIS_STATUS_LINK_SPEED_CHANGE ((RNDIS_STATUS)0x40010013L)
  84. #define RNDIS_STATUS_NOT_RESETTABLE ((RNDIS_STATUS)0x80010001L)
  85. #define RNDIS_STATUS_SOFT_ERRORS ((RNDIS_STATUS)0x80010003L)
  86. #define RNDIS_STATUS_HARD_ERRORS ((RNDIS_STATUS)0x80010004L)
  87. #define RNDIS_STATUS_BUFFER_OVERFLOW ((RNDIS_STATUS)STATUS_BUFFER_OVERFLOW)
  88. #define RNDIS_STATUS_FAILURE ((RNDIS_STATUS)STATUS_UNSUCCESSFUL)
  89. #define RNDIS_STATUS_RESOURCES ((RNDIS_STATUS)STATUS_INSUFFICIENT_RESOURCES)
  90. #define RNDIS_STATUS_CLOSING ((RNDIS_STATUS)0xC0010002L)
  91. #define RNDIS_STATUS_BAD_VERSION ((RNDIS_STATUS)0xC0010004L)
  92. #define RNDIS_STATUS_BAD_CHARACTERISTICS ((RNDIS_STATUS)0xC0010005L)
  93. #define RNDIS_STATUS_ADAPTER_NOT_FOUND ((RNDIS_STATUS)0xC0010006L)
  94. #define RNDIS_STATUS_OPEN_FAILED ((RNDIS_STATUS)0xC0010007L)
  95. #define RNDIS_STATUS_DEVICE_FAILED ((RNDIS_STATUS)0xC0010008L)
  96. #define RNDIS_STATUS_MULTICAST_FULL ((RNDIS_STATUS)0xC0010009L)
  97. #define RNDIS_STATUS_MULTICAST_EXISTS ((RNDIS_STATUS)0xC001000AL)
  98. #define RNDIS_STATUS_MULTICAST_NOT_FOUND ((RNDIS_STATUS)0xC001000BL)
  99. #define RNDIS_STATUS_REQUEST_ABORTED ((RNDIS_STATUS)0xC001000CL)
  100. #define RNDIS_STATUS_RESET_IN_PROGRESS ((RNDIS_STATUS)0xC001000DL)
  101. #define RNDIS_STATUS_CLOSING_INDICATING ((RNDIS_STATUS)0xC001000EL)
  102. #define RNDIS_STATUS_NOT_SUPPORTED ((RNDIS_STATUS)STATUS_NOT_SUPPORTED)
  103. #define RNDIS_STATUS_INVALID_PACKET ((RNDIS_STATUS)0xC001000FL)
  104. #define RNDIS_STATUS_OPEN_LIST_FULL ((RNDIS_STATUS)0xC0010010L)
  105. #define RNDIS_STATUS_ADAPTER_NOT_READY ((RNDIS_STATUS)0xC0010011L)
  106. #define RNDIS_STATUS_ADAPTER_NOT_OPEN ((RNDIS_STATUS)0xC0010012L)
  107. #define RNDIS_STATUS_NOT_INDICATING ((RNDIS_STATUS)0xC0010013L)
  108. #define RNDIS_STATUS_INVALID_LENGTH ((RNDIS_STATUS)0xC0010014L)
  109. #define RNDIS_STATUS_INVALID_DATA ((RNDIS_STATUS)0xC0010015L)
  110. #define RNDIS_STATUS_BUFFER_TOO_SHORT ((RNDIS_STATUS)0xC0010016L)
  111. #define RNDIS_STATUS_INVALID_OID ((RNDIS_STATUS)0xC0010017L)
  112. #define RNDIS_STATUS_ADAPTER_REMOVED ((RNDIS_STATUS)0xC0010018L)
  113. #define RNDIS_STATUS_UNSUPPORTED_MEDIA ((RNDIS_STATUS)0xC0010019L)
  114. #define RNDIS_STATUS_GROUP_ADDRESS_IN_USE ((RNDIS_STATUS)0xC001001AL)
  115. #define RNDIS_STATUS_FILE_NOT_FOUND ((RNDIS_STATUS)0xC001001BL)
  116. #define RNDIS_STATUS_ERROR_READING_FILE ((RNDIS_STATUS)0xC001001CL)
  117. #define RNDIS_STATUS_ALREADY_MAPPED ((RNDIS_STATUS)0xC001001DL)
  118. #define RNDIS_STATUS_RESOURCE_CONFLICT ((RNDIS_STATUS)0xC001001EL)
  119. #define RNDIS_STATUS_NO_CABLE ((RNDIS_STATUS)0xC001001FL)
  120. #define RNDIS_STATUS_INVALID_SAP ((RNDIS_STATUS)0xC0010020L)
  121. #define RNDIS_STATUS_SAP_IN_USE ((RNDIS_STATUS)0xC0010021L)
  122. #define RNDIS_STATUS_INVALID_ADDRESS ((RNDIS_STATUS)0xC0010022L)
  123. #define RNDIS_STATUS_VC_NOT_ACTIVATED ((RNDIS_STATUS)0xC0010023L)
  124. #define RNDIS_STATUS_DEST_OUT_OF_ORDER ((RNDIS_STATUS)0xC0010024L)
  125. #define RNDIS_STATUS_VC_NOT_AVAILABLE ((RNDIS_STATUS)0xC0010025L)
  126. #define RNDIS_STATUS_CELLRATE_NOT_AVAILABLE ((RNDIS_STATUS)0xC0010026L)
  127. #define RNDIS_STATUS_INCOMPATABLE_QOS ((RNDIS_STATUS)0xC0010027L)
  128. #define RNDIS_STATUS_AAL_PARAMS_UNSUPPORTED ((RNDIS_STATUS)0xC0010028L)
  129. #define RNDIS_STATUS_NO_ROUTE_TO_DESTINATION ((RNDIS_STATUS)0xC0010029L)
  130. #define RNDIS_STATUS_TOKEN_RING_OPEN_ERROR ((RNDIS_STATUS)0xC0011000L)
  131. //
  132. // Object Identifiers used by NdisRequest Query/Set Information
  133. //
  134. //
  135. // General Objects
  136. //
  137. #define RNDIS_OID_GEN_SUPPORTED_LIST 0x00010101
  138. #define RNDIS_OID_GEN_HARDWARE_STATUS 0x00010102
  139. #define RNDIS_OID_GEN_MEDIA_SUPPORTED 0x00010103
  140. #define RNDIS_OID_GEN_MEDIA_IN_USE 0x00010104
  141. #define RNDIS_OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
  142. #define RNDIS_OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
  143. #define RNDIS_OID_GEN_LINK_SPEED 0x00010107
  144. #define RNDIS_OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
  145. #define RNDIS_OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
  146. #define RNDIS_OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A
  147. #define RNDIS_OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B
  148. #define RNDIS_OID_GEN_VENDOR_ID 0x0001010C
  149. #define RNDIS_OID_GEN_VENDOR_DESCRIPTION 0x0001010D
  150. #define RNDIS_OID_GEN_CURRENT_PACKET_FILTER 0x0001010E
  151. #define RNDIS_OID_GEN_CURRENT_LOOKAHEAD 0x0001010F
  152. #define RNDIS_OID_GEN_DRIVER_VERSION 0x00010110
  153. #define RNDIS_OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
  154. #define RNDIS_OID_GEN_PROTOCOL_OPTIONS 0x00010112
  155. #define RNDIS_OID_GEN_MAC_OPTIONS 0x00010113
  156. #define RNDIS_OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
  157. #define RNDIS_OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115
  158. #define RNDIS_OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
  159. #define RNDIS_OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118
  160. #define RNDIS_OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119
  161. #define RNDIS_OID_GEN_MACHINE_NAME 0x0001021A
  162. #define RNDIS_OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B
  163. #define RNDIS_OID_GEN_XMIT_OK 0x00020101
  164. #define RNDIS_OID_GEN_RCV_OK 0x00020102
  165. #define RNDIS_OID_GEN_XMIT_ERROR 0x00020103
  166. #define RNDIS_OID_GEN_RCV_ERROR 0x00020104
  167. #define RNDIS_OID_GEN_RCV_NO_BUFFER 0x00020105
  168. #define RNDIS_OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
  169. #define RNDIS_OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
  170. #define RNDIS_OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
  171. #define RNDIS_OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
  172. #define RNDIS_OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
  173. #define RNDIS_OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
  174. #define RNDIS_OID_GEN_DIRECTED_BYTES_RCV 0x00020207
  175. #define RNDIS_OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
  176. #define RNDIS_OID_GEN_MULTICAST_BYTES_RCV 0x00020209
  177. #define RNDIS_OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A
  178. #define RNDIS_OID_GEN_BROADCAST_BYTES_RCV 0x0002020B
  179. #define RNDIS_OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C
  180. #define RNDIS_OID_GEN_RCV_CRC_ERROR 0x0002020D
  181. #define RNDIS_OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E
  182. #define RNDIS_OID_GEN_GET_TIME_CAPS 0x0002020F
  183. #define RNDIS_OID_GEN_GET_NETCARD_TIME 0x00020210
  184. //
  185. // These are connection-oriented general OIDs.
  186. // These replace the above OIDs for connection-oriented media.
  187. //
  188. #define RNDIS_OID_GEN_CO_SUPPORTED_LIST 0x00010101
  189. #define RNDIS_OID_GEN_CO_HARDWARE_STATUS 0x00010102
  190. #define RNDIS_OID_GEN_CO_MEDIA_SUPPORTED 0x00010103
  191. #define RNDIS_OID_GEN_CO_MEDIA_IN_USE 0x00010104
  192. #define RNDIS_OID_GEN_CO_LINK_SPEED 0x00010105
  193. #define RNDIS_OID_GEN_CO_VENDOR_ID 0x00010106
  194. #define RNDIS_OID_GEN_CO_VENDOR_DESCRIPTION 0x00010107
  195. #define RNDIS_OID_GEN_CO_DRIVER_VERSION 0x00010108
  196. #define RNDIS_OID_GEN_CO_PROTOCOL_OPTIONS 0x00010109
  197. #define RNDIS_OID_GEN_CO_MAC_OPTIONS 0x0001010A
  198. #define RNDIS_OID_GEN_CO_MEDIA_CONNECT_STATUS 0x0001010B
  199. #define RNDIS_OID_GEN_CO_VENDOR_DRIVER_VERSION 0x0001010C
  200. #define RNDIS_OID_GEN_CO_MINIMUM_LINK_SPEED 0x0001010D
  201. #define RNDIS_OID_GEN_CO_GET_TIME_CAPS 0x00010201
  202. #define RNDIS_OID_GEN_CO_GET_NETCARD_TIME 0x00010202
  203. //
  204. // These are connection-oriented statistics OIDs.
  205. //
  206. #define RNDIS_OID_GEN_CO_XMIT_PDUS_OK 0x00020101
  207. #define RNDIS_OID_GEN_CO_RCV_PDUS_OK 0x00020102
  208. #define RNDIS_OID_GEN_CO_XMIT_PDUS_ERROR 0x00020103
  209. #define RNDIS_OID_GEN_CO_RCV_PDUS_ERROR 0x00020104
  210. #define RNDIS_OID_GEN_CO_RCV_PDUS_NO_BUFFER 0x00020105
  211. #define RNDIS_OID_GEN_CO_RCV_CRC_ERROR 0x00020201
  212. #define RNDIS_OID_GEN_CO_TRANSMIT_QUEUE_LENGTH 0x00020202
  213. #define RNDIS_OID_GEN_CO_BYTES_XMIT 0x00020203
  214. #define RNDIS_OID_GEN_CO_BYTES_RCV 0x00020204
  215. #define RNDIS_OID_GEN_CO_BYTES_XMIT_OUTSTANDING 0x00020205
  216. #define RNDIS_OID_GEN_CO_NETCARD_LOAD 0x00020206
  217. //
  218. // These are objects for Connection-oriented media call-managers.
  219. //
  220. #define RNDIS_OID_CO_ADD_PVC 0xFF000001
  221. #define RNDIS_OID_CO_DELETE_PVC 0xFF000002
  222. #define RNDIS_OID_CO_GET_CALL_INFORMATION 0xFF000003
  223. #define RNDIS_OID_CO_ADD_ADDRESS 0xFF000004
  224. #define RNDIS_OID_CO_DELETE_ADDRESS 0xFF000005
  225. #define RNDIS_OID_CO_GET_ADDRESSES 0xFF000006
  226. #define RNDIS_OID_CO_ADDRESS_CHANGE 0xFF000007
  227. #define RNDIS_OID_CO_SIGNALING_ENABLED 0xFF000008
  228. #define RNDIS_OID_CO_SIGNALING_DISABLED 0xFF000009
  229. //
  230. // 802.3 Objects (Ethernet)
  231. //
  232. #define RNDIS_OID_802_3_PERMANENT_ADDRESS 0x01010101
  233. #define RNDIS_OID_802_3_CURRENT_ADDRESS 0x01010102
  234. #define RNDIS_OID_802_3_MULTICAST_LIST 0x01010103
  235. #define RNDIS_OID_802_3_MAXIMUM_LIST_SIZE 0x01010104
  236. #define RNDIS_OID_802_3_MAC_OPTIONS 0x01010105
  237. //
  238. //
  239. #define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001
  240. #define RNDIS_OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101
  241. #define RNDIS_OID_802_3_XMIT_ONE_COLLISION 0x01020102
  242. #define RNDIS_OID_802_3_XMIT_MORE_COLLISIONS 0x01020103
  243. #define RNDIS_OID_802_3_XMIT_DEFERRED 0x01020201
  244. #define RNDIS_OID_802_3_XMIT_MAX_COLLISIONS 0x01020202
  245. #define RNDIS_OID_802_3_RCV_OVERRUN 0x01020203
  246. #define RNDIS_OID_802_3_XMIT_UNDERRUN 0x01020204
  247. #define RNDIS_OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205
  248. #define RNDIS_OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206
  249. #define RNDIS_OID_802_3_XMIT_LATE_COLLISIONS 0x01020207
  250. //
  251. // 802.5 Objects (Token-Ring)
  252. //
  253. #define RNDIS_OID_802_5_PERMANENT_ADDRESS 0x02010101
  254. #define RNDIS_OID_802_5_CURRENT_ADDRESS 0x02010102
  255. #define RNDIS_OID_802_5_CURRENT_FUNCTIONAL 0x02010103
  256. #define RNDIS_OID_802_5_CURRENT_GROUP 0x02010104
  257. #define RNDIS_OID_802_5_LAST_OPEN_STATUS 0x02010105
  258. #define RNDIS_OID_802_5_CURRENT_RING_STATUS 0x02010106
  259. #define RNDIS_OID_802_5_CURRENT_RING_STATE 0x02010107
  260. #define RNDIS_OID_802_5_LINE_ERRORS 0x02020101
  261. #define RNDIS_OID_802_5_LOST_FRAMES 0x02020102
  262. #define RNDIS_OID_802_5_BURST_ERRORS 0x02020201
  263. #define RNDIS_OID_802_5_AC_ERRORS 0x02020202
  264. #define RNDIS_OID_802_5_ABORT_DELIMETERS 0x02020203
  265. #define RNDIS_OID_802_5_FRAME_COPIED_ERRORS 0x02020204
  266. #define RNDIS_OID_802_5_FREQUENCY_ERRORS 0x02020205
  267. #define RNDIS_OID_802_5_TOKEN_ERRORS 0x02020206
  268. #define RNDIS_OID_802_5_INTERNAL_ERRORS 0x02020207
  269. //
  270. // FDDI Objects
  271. //
  272. #define RNDIS_OID_FDDI_LONG_PERMANENT_ADDR 0x03010101
  273. #define RNDIS_OID_FDDI_LONG_CURRENT_ADDR 0x03010102
  274. #define RNDIS_OID_FDDI_LONG_MULTICAST_LIST 0x03010103
  275. #define RNDIS_OID_FDDI_LONG_MAX_LIST_SIZE 0x03010104
  276. #define RNDIS_OID_FDDI_SHORT_PERMANENT_ADDR 0x03010105
  277. #define RNDIS_OID_FDDI_SHORT_CURRENT_ADDR 0x03010106
  278. #define RNDIS_OID_FDDI_SHORT_MULTICAST_LIST 0x03010107
  279. #define RNDIS_OID_FDDI_SHORT_MAX_LIST_SIZE 0x03010108
  280. #define RNDIS_OID_FDDI_ATTACHMENT_TYPE 0x03020101
  281. #define RNDIS_OID_FDDI_UPSTREAM_NODE_LONG 0x03020102
  282. #define RNDIS_OID_FDDI_DOWNSTREAM_NODE_LONG 0x03020103
  283. #define RNDIS_OID_FDDI_FRAME_ERRORS 0x03020104
  284. #define RNDIS_OID_FDDI_FRAMES_LOST 0x03020105
  285. #define RNDIS_OID_FDDI_RING_MGT_STATE 0x03020106
  286. #define RNDIS_OID_FDDI_LCT_FAILURES 0x03020107
  287. #define RNDIS_OID_FDDI_LEM_REJECTS 0x03020108
  288. #define RNDIS_OID_FDDI_LCONNECTION_STATE 0x03020109
  289. #define RNDIS_OID_FDDI_SMT_STATION_ID 0x03030201
  290. #define RNDIS_OID_FDDI_SMT_OP_VERSION_ID 0x03030202
  291. #define RNDIS_OID_FDDI_SMT_HI_VERSION_ID 0x03030203
  292. #define RNDIS_OID_FDDI_SMT_LO_VERSION_ID 0x03030204
  293. #define RNDIS_OID_FDDI_SMT_MANUFACTURER_DATA 0x03030205
  294. #define RNDIS_OID_FDDI_SMT_USER_DATA 0x03030206
  295. #define RNDIS_OID_FDDI_SMT_MIB_VERSION_ID 0x03030207
  296. #define RNDIS_OID_FDDI_SMT_MAC_CT 0x03030208
  297. #define RNDIS_OID_FDDI_SMT_NON_MASTER_CT 0x03030209
  298. #define RNDIS_OID_FDDI_SMT_MASTER_CT 0x0303020A
  299. #define RNDIS_OID_FDDI_SMT_AVAILABLE_PATHS 0x0303020B
  300. #define RNDIS_OID_FDDI_SMT_CONFIG_CAPABILITIES 0x0303020C
  301. #define RNDIS_OID_FDDI_SMT_CONFIG_POLICY 0x0303020D
  302. #define RNDIS_OID_FDDI_SMT_CONNECTION_POLICY 0x0303020E
  303. #define RNDIS_OID_FDDI_SMT_T_NOTIFY 0x0303020F
  304. #define RNDIS_OID_FDDI_SMT_STAT_RPT_POLICY 0x03030210
  305. #define RNDIS_OID_FDDI_SMT_TRACE_MAX_EXPIRATION 0x03030211
  306. #define RNDIS_OID_FDDI_SMT_PORT_INDEXES 0x03030212
  307. #define RNDIS_OID_FDDI_SMT_MAC_INDEXES 0x03030213
  308. #define RNDIS_OID_FDDI_SMT_BYPASS_PRESENT 0x03030214
  309. #define RNDIS_OID_FDDI_SMT_ECM_STATE 0x03030215
  310. #define RNDIS_OID_FDDI_SMT_CF_STATE 0x03030216
  311. #define RNDIS_OID_FDDI_SMT_HOLD_STATE 0x03030217
  312. #define RNDIS_OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG 0x03030218
  313. #define RNDIS_OID_FDDI_SMT_STATION_STATUS 0x03030219
  314. #define RNDIS_OID_FDDI_SMT_PEER_WRAP_FLAG 0x0303021A
  315. #define RNDIS_OID_FDDI_SMT_MSG_TIME_STAMP 0x0303021B
  316. #define RNDIS_OID_FDDI_SMT_TRANSITION_TIME_STAMP 0x0303021C
  317. #define RNDIS_OID_FDDI_SMT_SET_COUNT 0x0303021D
  318. #define RNDIS_OID_FDDI_SMT_LAST_SET_STATION_ID 0x0303021E
  319. #define RNDIS_OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 0x0303021F
  320. #define RNDIS_OID_FDDI_MAC_BRIDGE_FUNCTIONS 0x03030220
  321. #define RNDIS_OID_FDDI_MAC_T_MAX_CAPABILITY 0x03030221
  322. #define RNDIS_OID_FDDI_MAC_TVX_CAPABILITY 0x03030222
  323. #define RNDIS_OID_FDDI_MAC_AVAILABLE_PATHS 0x03030223
  324. #define RNDIS_OID_FDDI_MAC_CURRENT_PATH 0x03030224
  325. #define RNDIS_OID_FDDI_MAC_UPSTREAM_NBR 0x03030225
  326. #define RNDIS_OID_FDDI_MAC_DOWNSTREAM_NBR 0x03030226
  327. #define RNDIS_OID_FDDI_MAC_OLD_UPSTREAM_NBR 0x03030227
  328. #define RNDIS_OID_FDDI_MAC_OLD_DOWNSTREAM_NBR 0x03030228
  329. #define RNDIS_OID_FDDI_MAC_DUP_ADDRESS_TEST 0x03030229
  330. #define RNDIS_OID_FDDI_MAC_REQUESTED_PATHS 0x0303022A
  331. #define RNDIS_OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE 0x0303022B
  332. #define RNDIS_OID_FDDI_MAC_INDEX 0x0303022C
  333. #define RNDIS_OID_FDDI_MAC_SMT_ADDRESS 0x0303022D
  334. #define RNDIS_OID_FDDI_MAC_LONG_GRP_ADDRESS 0x0303022E
  335. #define RNDIS_OID_FDDI_MAC_SHORT_GRP_ADDRESS 0x0303022F
  336. #define RNDIS_OID_FDDI_MAC_T_REQ 0x03030230
  337. #define RNDIS_OID_FDDI_MAC_T_NEG 0x03030231
  338. #define RNDIS_OID_FDDI_MAC_T_MAX 0x03030232
  339. #define RNDIS_OID_FDDI_MAC_TVX_VALUE 0x03030233
  340. #define RNDIS_OID_FDDI_MAC_T_PRI0 0x03030234
  341. #define RNDIS_OID_FDDI_MAC_T_PRI1 0x03030235
  342. #define RNDIS_OID_FDDI_MAC_T_PRI2 0x03030236
  343. #define RNDIS_OID_FDDI_MAC_T_PRI3 0x03030237
  344. #define RNDIS_OID_FDDI_MAC_T_PRI4 0x03030238
  345. #define RNDIS_OID_FDDI_MAC_T_PRI5 0x03030239
  346. #define RNDIS_OID_FDDI_MAC_T_PRI6 0x0303023A
  347. #define RNDIS_OID_FDDI_MAC_FRAME_CT 0x0303023B
  348. #define RNDIS_OID_FDDI_MAC_COPIED_CT 0x0303023C
  349. #define RNDIS_OID_FDDI_MAC_TRANSMIT_CT 0x0303023D
  350. #define RNDIS_OID_FDDI_MAC_TOKEN_CT 0x0303023E
  351. #define RNDIS_OID_FDDI_MAC_ERROR_CT 0x0303023F
  352. #define RNDIS_OID_FDDI_MAC_LOST_CT 0x03030240
  353. #define RNDIS_OID_FDDI_MAC_TVX_EXPIRED_CT 0x03030241
  354. #define RNDIS_OID_FDDI_MAC_NOT_COPIED_CT 0x03030242
  355. #define RNDIS_OID_FDDI_MAC_LATE_CT 0x03030243
  356. #define RNDIS_OID_FDDI_MAC_RING_OP_CT 0x03030244
  357. #define RNDIS_OID_FDDI_MAC_FRAME_ERROR_THRESHOLD 0x03030245
  358. #define RNDIS_OID_FDDI_MAC_FRAME_ERROR_RATIO 0x03030246
  359. #define RNDIS_OID_FDDI_MAC_NOT_COPIED_THRESHOLD 0x03030247
  360. #define RNDIS_OID_FDDI_MAC_NOT_COPIED_RATIO 0x03030248
  361. #define RNDIS_OID_FDDI_MAC_RMT_STATE 0x03030249
  362. #define RNDIS_OID_FDDI_MAC_DA_FLAG 0x0303024A
  363. #define RNDIS_OID_FDDI_MAC_UNDA_FLAG 0x0303024B
  364. #define RNDIS_OID_FDDI_MAC_FRAME_ERROR_FLAG 0x0303024C
  365. #define RNDIS_OID_FDDI_MAC_NOT_COPIED_FLAG 0x0303024D
  366. #define RNDIS_OID_FDDI_MAC_MA_UNITDATA_AVAILABLE 0x0303024E
  367. #define RNDIS_OID_FDDI_MAC_HARDWARE_PRESENT 0x0303024F
  368. #define RNDIS_OID_FDDI_MAC_MA_UNITDATA_ENABLE 0x03030250
  369. #define RNDIS_OID_FDDI_PATH_INDEX 0x03030251
  370. #define RNDIS_OID_FDDI_PATH_RING_LATENCY 0x03030252
  371. #define RNDIS_OID_FDDI_PATH_TRACE_STATUS 0x03030253
  372. #define RNDIS_OID_FDDI_PATH_SBA_PAYLOAD 0x03030254
  373. #define RNDIS_OID_FDDI_PATH_SBA_OVERHEAD 0x03030255
  374. #define RNDIS_OID_FDDI_PATH_CONFIGURATION 0x03030256
  375. #define RNDIS_OID_FDDI_PATH_T_R_MODE 0x03030257
  376. #define RNDIS_OID_FDDI_PATH_SBA_AVAILABLE 0x03030258
  377. #define RNDIS_OID_FDDI_PATH_TVX_LOWER_BOUND 0x03030259
  378. #define RNDIS_OID_FDDI_PATH_T_MAX_LOWER_BOUND 0x0303025A
  379. #define RNDIS_OID_FDDI_PATH_MAX_T_REQ 0x0303025B
  380. #define RNDIS_OID_FDDI_PORT_MY_TYPE 0x0303025C
  381. #define RNDIS_OID_FDDI_PORT_NEIGHBOR_TYPE 0x0303025D
  382. #define RNDIS_OID_FDDI_PORT_CONNECTION_POLICIES 0x0303025E
  383. #define RNDIS_OID_FDDI_PORT_MAC_INDICATED 0x0303025F
  384. #define RNDIS_OID_FDDI_PORT_CURRENT_PATH 0x03030260
  385. #define RNDIS_OID_FDDI_PORT_REQUESTED_PATHS 0x03030261
  386. #define RNDIS_OID_FDDI_PORT_MAC_PLACEMENT 0x03030262
  387. #define RNDIS_OID_FDDI_PORT_AVAILABLE_PATHS 0x03030263
  388. #define RNDIS_OID_FDDI_PORT_MAC_LOOP_TIME 0x03030264
  389. #define RNDIS_OID_FDDI_PORT_PMD_CLASS 0x03030265
  390. #define RNDIS_OID_FDDI_PORT_CONNECTION_CAPABILITIES 0x03030266
  391. #define RNDIS_OID_FDDI_PORT_INDEX 0x03030267
  392. #define RNDIS_OID_FDDI_PORT_MAINT_LS 0x03030268
  393. #define RNDIS_OID_FDDI_PORT_BS_FLAG 0x03030269
  394. #define RNDIS_OID_FDDI_PORT_PC_LS 0x0303026A
  395. #define RNDIS_OID_FDDI_PORT_EB_ERROR_CT 0x0303026B
  396. #define RNDIS_OID_FDDI_PORT_LCT_FAIL_CT 0x0303026C
  397. #define RNDIS_OID_FDDI_PORT_LER_ESTIMATE 0x0303026D
  398. #define RNDIS_OID_FDDI_PORT_LEM_REJECT_CT 0x0303026E
  399. #define RNDIS_OID_FDDI_PORT_LEM_CT 0x0303026F
  400. #define RNDIS_OID_FDDI_PORT_LER_CUTOFF 0x03030270
  401. #define RNDIS_OID_FDDI_PORT_LER_ALARM 0x03030271
  402. #define RNDIS_OID_FDDI_PORT_CONNNECT_STATE 0x03030272
  403. #define RNDIS_OID_FDDI_PORT_PCM_STATE 0x03030273
  404. #define RNDIS_OID_FDDI_PORT_PC_WITHHOLD 0x03030274
  405. #define RNDIS_OID_FDDI_PORT_LER_FLAG 0x03030275
  406. #define RNDIS_OID_FDDI_PORT_HARDWARE_PRESENT 0x03030276
  407. #define RNDIS_OID_FDDI_SMT_STATION_ACTION 0x03030277
  408. #define RNDIS_OID_FDDI_PORT_ACTION 0x03030278
  409. #define RNDIS_OID_FDDI_IF_DESCR 0x03030279
  410. #define RNDIS_OID_FDDI_IF_TYPE 0x0303027A
  411. #define RNDIS_OID_FDDI_IF_MTU 0x0303027B
  412. #define RNDIS_OID_FDDI_IF_SPEED 0x0303027C
  413. #define RNDIS_OID_FDDI_IF_PHYS_ADDRESS 0x0303027D
  414. #define RNDIS_OID_FDDI_IF_ADMIN_STATUS 0x0303027E
  415. #define RNDIS_OID_FDDI_IF_OPER_STATUS 0x0303027F
  416. #define RNDIS_OID_FDDI_IF_LAST_CHANGE 0x03030280
  417. #define RNDIS_OID_FDDI_IF_IN_OCTETS 0x03030281
  418. #define RNDIS_OID_FDDI_IF_IN_UCAST_PKTS 0x03030282
  419. #define RNDIS_OID_FDDI_IF_IN_NUCAST_PKTS 0x03030283
  420. #define RNDIS_OID_FDDI_IF_IN_DISCARDS 0x03030284
  421. #define RNDIS_OID_FDDI_IF_IN_ERRORS 0x03030285
  422. #define RNDIS_OID_FDDI_IF_IN_UNKNOWN_PROTOS 0x03030286
  423. #define RNDIS_OID_FDDI_IF_OUT_OCTETS 0x03030287
  424. #define RNDIS_OID_FDDI_IF_OUT_UCAST_PKTS 0x03030288
  425. #define RNDIS_OID_FDDI_IF_OUT_NUCAST_PKTS 0x03030289
  426. #define RNDIS_OID_FDDI_IF_OUT_DISCARDS 0x0303028A
  427. #define RNDIS_OID_FDDI_IF_OUT_ERRORS 0x0303028B
  428. #define RNDIS_OID_FDDI_IF_OUT_QLEN 0x0303028C
  429. #define RNDIS_OID_FDDI_IF_SPECIFIC 0x0303028D
  430. //
  431. // WAN objects
  432. //
  433. #define RNDIS_OID_WAN_PERMANENT_ADDRESS 0x04010101
  434. #define RNDIS_OID_WAN_CURRENT_ADDRESS 0x04010102
  435. #define RNDIS_OID_WAN_QUALITY_OF_SERVICE 0x04010103
  436. #define RNDIS_OID_WAN_PROTOCOL_TYPE 0x04010104
  437. #define RNDIS_OID_WAN_MEDIUM_SUBTYPE 0x04010105
  438. #define RNDIS_OID_WAN_HEADER_FORMAT 0x04010106
  439. #define RNDIS_OID_WAN_GET_INFO 0x04010107
  440. #define RNDIS_OID_WAN_SET_LINK_INFO 0x04010108
  441. #define RNDIS_OID_WAN_GET_LINK_INFO 0x04010109
  442. #define RNDIS_OID_WAN_LINE_COUNT 0x0401010A
  443. #define RNDIS_OID_WAN_GET_BRIDGE_INFO 0x0401020A
  444. #define RNDIS_OID_WAN_SET_BRIDGE_INFO 0x0401020B
  445. #define RNDIS_OID_WAN_GET_COMP_INFO 0x0401020C
  446. #define RNDIS_OID_WAN_SET_COMP_INFO 0x0401020D
  447. #define RNDIS_OID_WAN_GET_STATS_INFO 0x0401020E
  448. //
  449. // LocalTalk objects
  450. //
  451. #define RNDIS_OID_LTALK_CURRENT_NODE_ID 0x05010102
  452. #define RNDIS_OID_LTALK_IN_BROADCASTS 0x05020101
  453. #define RNDIS_OID_LTALK_IN_LENGTH_ERRORS 0x05020102
  454. #define RNDIS_OID_LTALK_OUT_NO_HANDLERS 0x05020201
  455. #define RNDIS_OID_LTALK_COLLISIONS 0x05020202
  456. #define RNDIS_OID_LTALK_DEFERS 0x05020203
  457. #define RNDIS_OID_LTALK_NO_DATA_ERRORS 0x05020204
  458. #define RNDIS_OID_LTALK_RANDOM_CTS_ERRORS 0x05020205
  459. #define RNDIS_OID_LTALK_FCS_ERRORS 0x05020206
  460. //
  461. // Arcnet objects
  462. //
  463. #define RNDIS_OID_ARCNET_PERMANENT_ADDRESS 0x06010101
  464. #define RNDIS_OID_ARCNET_CURRENT_ADDRESS 0x06010102
  465. #define RNDIS_OID_ARCNET_RECONFIGURATIONS 0x06020201
  466. //
  467. // TAPI objects
  468. //
  469. #define RNDIS_OID_TAPI_ACCEPT 0x07030101
  470. #define RNDIS_OID_TAPI_ANSWER 0x07030102
  471. #define RNDIS_OID_TAPI_CLOSE 0x07030103
  472. #define RNDIS_OID_TAPI_CLOSE_CALL 0x07030104
  473. #define RNDIS_OID_TAPI_CONDITIONAL_MEDIA_DETECTION 0x07030105
  474. #define RNDIS_OID_TAPI_CONFIG_DIALOG 0x07030106
  475. #define RNDIS_OID_TAPI_DEV_SPECIFIC 0x07030107
  476. #define RNDIS_OID_TAPI_DIAL 0x07030108
  477. #define RNDIS_OID_TAPI_DROP 0x07030109
  478. #define RNDIS_OID_TAPI_GET_ADDRESS_CAPS 0x0703010A
  479. #define RNDIS_OID_TAPI_GET_ADDRESS_ID 0x0703010B
  480. #define RNDIS_OID_TAPI_GET_ADDRESS_STATUS 0x0703010C
  481. #define RNDIS_OID_TAPI_GET_CALL_ADDRESS_ID 0x0703010D
  482. #define RNDIS_OID_TAPI_GET_CALL_INFO 0x0703010E
  483. #define RNDIS_OID_TAPI_GET_CALL_STATUS 0x0703010F
  484. #define RNDIS_OID_TAPI_GET_DEV_CAPS 0x07030110
  485. #define RNDIS_OID_TAPI_GET_DEV_CONFIG 0x07030111
  486. #define RNDIS_OID_TAPI_GET_EXTENSION_ID 0x07030112
  487. #define RNDIS_OID_TAPI_GET_ID 0x07030113
  488. #define RNDIS_OID_TAPI_GET_LINE_DEV_STATUS 0x07030114
  489. #define RNDIS_OID_TAPI_MAKE_CALL 0x07030115
  490. #define RNDIS_OID_TAPI_NEGOTIATE_EXT_VERSION 0x07030116
  491. #define RNDIS_OID_TAPI_OPEN 0x07030117
  492. #define RNDIS_OID_TAPI_PROVIDER_INITIALIZE 0x07030118
  493. #define RNDIS_OID_TAPI_PROVIDER_SHUTDOWN 0x07030119
  494. #define RNDIS_OID_TAPI_SECURE_CALL 0x0703011A
  495. #define RNDIS_OID_TAPI_SELECT_EXT_VERSION 0x0703011B
  496. #define RNDIS_OID_TAPI_SEND_USER_USER_INFO 0x0703011C
  497. #define RNDIS_OID_TAPI_SET_APP_SPECIFIC 0x0703011D
  498. #define RNDIS_OID_TAPI_SET_CALL_PARAMS 0x0703011E
  499. #define RNDIS_OID_TAPI_SET_DEFAULT_MEDIA_DETECTION 0x0703011F
  500. #define RNDIS_OID_TAPI_SET_DEV_CONFIG 0x07030120
  501. #define RNDIS_OID_TAPI_SET_MEDIA_MODE 0x07030121
  502. #define RNDIS_OID_TAPI_SET_STATUS_MESSAGES 0x07030122
  503. //
  504. // ATM Connection Oriented Ndis
  505. //
  506. #define RNDIS_OID_ATM_SUPPORTED_VC_RATES 0x08010101
  507. #define RNDIS_OID_ATM_SUPPORTED_SERVICE_CATEGORY 0x08010102
  508. #define RNDIS_OID_ATM_SUPPORTED_AAL_TYPES 0x08010103
  509. #define RNDIS_OID_ATM_HW_CURRENT_ADDRESS 0x08010104
  510. #define RNDIS_OID_ATM_MAX_ACTIVE_VCS 0x08010105
  511. #define RNDIS_OID_ATM_MAX_ACTIVE_VCI_BITS 0x08010106
  512. #define RNDIS_OID_ATM_MAX_ACTIVE_VPI_BITS 0x08010107
  513. #define RNDIS_OID_ATM_ALIGNMENT_REQUIRED 0x08010108
  514. #define RNDIS_OID_ATM_MAX_AAL0_PACKET_SIZE 0x08010109
  515. #define RNDIS_OID_ATM_MAX_AAL1_PACKET_SIZE 0x0801010A
  516. #define RNDIS_OID_ATM_MAX_AAL34_PACKET_SIZE 0x0801010B
  517. #define RNDIS_OID_ATM_MAX_AAL5_PACKET_SIZE 0x0801010C
  518. #define RNDIS_OID_ATM_SIGNALING_VPIVCI 0x08010201
  519. #define RNDIS_OID_ATM_ASSIGNED_VPI 0x08010202
  520. #define RNDIS_OID_ATM_ACQUIRE_ACCESS_NET_RESOURCES 0x08010203
  521. #define RNDIS_OID_ATM_RELEASE_ACCESS_NET_RESOURCES 0x08010204
  522. #define RNDIS_OID_ATM_ILMI_VPIVCI 0x08010205
  523. #define RNDIS_OID_ATM_DIGITAL_BROADCAST_VPIVCI 0x08010206
  524. #define RNDIS_OID_ATM_GET_NEAREST_FLOW 0x08010207
  525. //
  526. // ATM specific statistics OIDs.
  527. //
  528. #define RNDIS_OID_ATM_RCV_CELLS_OK 0x08020101
  529. #define RNDIS_OID_ATM_XMIT_CELLS_OK 0x08020102
  530. #define RNDIS_OID_ATM_RCV_CELLS_DROPPED 0x08020103
  531. #define RNDIS_OID_ATM_RCV_INVALID_VPI_VCI 0x08020201
  532. #define RNDIS_OID_ATM_CELLS_HEC_ERROR 0x08020202
  533. #define RNDIS_OID_ATM_RCV_REASSEMBLY_ERROR 0x08020203
  534. //
  535. // PCCA (Wireless) object
  536. //
  537. //
  538. // All WirelessWAN devices must support the following OIDs
  539. //
  540. #define RNDIS_OID_WW_GEN_NETWORK_TYPES_SUPPORTED 0x09010101
  541. #define RNDIS_OID_WW_GEN_NETWORK_TYPE_IN_USE 0x09010102
  542. #define RNDIS_OID_WW_GEN_HEADER_FORMATS_SUPPORTED 0x09010103
  543. #define RNDIS_OID_WW_GEN_HEADER_FORMAT_IN_USE 0x09010104
  544. #define RNDIS_OID_WW_GEN_INDICATION_REQUEST 0x09010105
  545. #define RNDIS_OID_WW_GEN_DEVICE_INFO 0x09010106
  546. #define RNDIS_OID_WW_GEN_OPERATION_MODE 0x09010107
  547. #define RNDIS_OID_WW_GEN_LOCK_STATUS 0x09010108
  548. #define RNDIS_OID_WW_GEN_DISABLE_TRANSMITTER 0x09010109
  549. #define RNDIS_OID_WW_GEN_NETWORK_ID 0x0901010A
  550. #define RNDIS_OID_WW_GEN_PERMANENT_ADDRESS 0x0901010B
  551. #define RNDIS_OID_WW_GEN_CURRENT_ADDRESS 0x0901010C
  552. #define RNDIS_OID_WW_GEN_SUSPEND_DRIVER 0x0901010D
  553. #define RNDIS_OID_WW_GEN_BASESTATION_ID 0x0901010E
  554. #define RNDIS_OID_WW_GEN_CHANNEL_ID 0x0901010F
  555. #define RNDIS_OID_WW_GEN_ENCRYPTION_SUPPORTED 0x09010110
  556. #define RNDIS_OID_WW_GEN_ENCRYPTION_IN_USE 0x09010111
  557. #define RNDIS_OID_WW_GEN_ENCRYPTION_STATE 0x09010112
  558. #define RNDIS_OID_WW_GEN_CHANNEL_QUALITY 0x09010113
  559. #define RNDIS_OID_WW_GEN_REGISTRATION_STATUS 0x09010114
  560. #define RNDIS_OID_WW_GEN_RADIO_LINK_SPEED 0x09010115
  561. #define RNDIS_OID_WW_GEN_LATENCY 0x09010116
  562. #define RNDIS_OID_WW_GEN_BATTERY_LEVEL 0x09010117
  563. #define RNDIS_OID_WW_GEN_EXTERNAL_POWER 0x09010118
  564. //
  565. // Network Dependent OIDs - Mobitex:
  566. //
  567. #define RNDIS_OID_WW_MBX_SUBADDR 0x09050101
  568. // OID 0x09050102 is reserved and may not be used
  569. #define RNDIS_OID_WW_MBX_FLEXLIST 0x09050103
  570. #define RNDIS_OID_WW_MBX_GROUPLIST 0x09050104
  571. #define RNDIS_OID_WW_MBX_TRAFFIC_AREA 0x09050105
  572. #define RNDIS_OID_WW_MBX_LIVE_DIE 0x09050106
  573. #define RNDIS_OID_WW_MBX_TEMP_DEFAULTLIST 0x09050107
  574. //
  575. // Network Dependent OIDs - Pinpoint:
  576. //
  577. #define RNDIS_OID_WW_PIN_LOC_AUTHORIZE 0x09090101
  578. #define RNDIS_OID_WW_PIN_LAST_LOCATION 0x09090102
  579. #define RNDIS_OID_WW_PIN_LOC_FIX 0x09090103
  580. //
  581. // Network Dependent - CDPD:
  582. //
  583. #define RNDIS_OID_WW_CDPD_SPNI 0x090D0101
  584. #define RNDIS_OID_WW_CDPD_WASI 0x090D0102
  585. #define RNDIS_OID_WW_CDPD_AREA_COLOR 0x090D0103
  586. #define RNDIS_OID_WW_CDPD_TX_POWER_LEVEL 0x090D0104
  587. #define RNDIS_OID_WW_CDPD_EID 0x090D0105
  588. #define RNDIS_OID_WW_CDPD_HEADER_COMPRESSION 0x090D0106
  589. #define RNDIS_OID_WW_CDPD_DATA_COMPRESSION 0x090D0107
  590. #define RNDIS_OID_WW_CDPD_CHANNEL_SELECT 0x090D0108
  591. #define RNDIS_OID_WW_CDPD_CHANNEL_STATE 0x090D0109
  592. #define RNDIS_OID_WW_CDPD_NEI 0x090D010A
  593. #define RNDIS_OID_WW_CDPD_NEI_STATE 0x090D010B
  594. #define RNDIS_OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER 0x090D010C
  595. #define RNDIS_OID_WW_CDPD_SLEEP_MODE 0x090D010D
  596. #define RNDIS_OID_WW_CDPD_CIRCUIT_SWITCHED 0x090D010E
  597. #define RNDIS_OID_WW_CDPD_TEI 0x090D010F
  598. #define RNDIS_OID_WW_CDPD_RSSI 0x090D0110
  599. //
  600. // Network Dependent - Ardis:
  601. //
  602. #define RNDIS_OID_WW_ARD_SNDCP 0x09110101
  603. #define RNDIS_OID_WW_ARD_TMLY_MSG 0x09110102
  604. #define RNDIS_OID_WW_ARD_DATAGRAM 0x09110103
  605. //
  606. // Network Dependent - DataTac:
  607. //
  608. #define RNDIS_OID_WW_TAC_COMPRESSION 0x09150101
  609. #define RNDIS_OID_WW_TAC_SET_CONFIG 0x09150102
  610. #define RNDIS_OID_WW_TAC_GET_STATUS 0x09150103
  611. #define RNDIS_OID_WW_TAC_USER_HEADER 0x09150104
  612. //
  613. // Network Dependent - Metricom:
  614. //
  615. #define RNDIS_OID_WW_MET_FUNCTION 0x09190101
  616. //
  617. // IRDA objects
  618. //
  619. #define RNDIS_OID_IRDA_RECEIVING 0x0A010100
  620. #define RNDIS_OID_IRDA_TURNAROUND_TIME 0x0A010101
  621. #define RNDIS_OID_IRDA_SUPPORTED_SPEEDS 0x0A010102
  622. #define RNDIS_OID_IRDA_LINK_SPEED 0x0A010103
  623. #define RNDIS_OID_IRDA_MEDIA_BUSY 0x0A010104
  624. #define RNDIS_OID_IRDA_EXTRA_RCV_BOFS 0x0A010200
  625. #define RNDIS_OID_IRDA_RATE_SNIFF 0x0A010201
  626. #define RNDIS_OID_IRDA_UNICAST_LIST 0x0A010202
  627. #define RNDIS_OID_IRDA_MAX_UNICAST_LIST_SIZE 0x0A010203
  628. //
  629. // Remote NDIS message types
  630. //
  631. #define REMOTE_NDIS_PACKET_MSG 0x00000001
  632. #define REMOTE_NDIS_INITIALIZE_MSG 0x00000002
  633. #define REMOTE_NDIS_HALT_MSG 0x00000003
  634. #define REMOTE_NDIS_QUERY_MSG 0x00000004
  635. #define REMOTE_NDIS_SET_MSG 0x00000005
  636. #define REMOTE_NDIS_RESET_MSG 0x00000006
  637. #define REMOTE_NDIS_INDICATE_STATUS_MSG 0x00000007
  638. #define REMOTE_NDIS_KEEPALIVE_MSG 0x00000008
  639. #define REMOTE_CONDIS_MP_CREATE_VC_MSG 0x00008001
  640. #define REMOTE_CONDIS_MP_DELETE_VC_MSG 0x00008002
  641. #define REMOTE_CONDIS_MP_ACTIVATE_VC_MSG 0x00008005
  642. #define REMOTE_CONDIS_MP_DEACTIVATE_VC_MSG 0x00008006
  643. #define REMOTE_CONDIS_INDICATE_STATUS_MSG 0x00008007
  644. // Remote NDIS message completion types
  645. #define REMOTE_NDIS_INITIALIZE_CMPLT 0x80000002
  646. #define REMOTE_NDIS_QUERY_CMPLT 0x80000004
  647. #define REMOTE_NDIS_SET_CMPLT 0x80000005
  648. #define REMOTE_NDIS_RESET_CMPLT 0x80000006
  649. #define REMOTE_NDIS_KEEPALIVE_CMPLT 0x80000008
  650. #define REMOTE_CONDIS_MP_CREATE_VC_CMPLT 0x80008001
  651. #define REMOTE_CONDIS_MP_DELETE_VC_CMPLT 0x80008002
  652. #define REMOTE_CONDIS_MP_ACTIVATE_VC_CMPLT 0x80008005
  653. #define REMOTE_CONDIS_MP_DEACTIVATE_VC_CMPLT 0x80008006
  654. //
  655. // Reserved message type for private communication between lower-layer
  656. // host driver and remote device, if necessary.
  657. //
  658. #define REMOTE_NDIS_BUS_MSG 0xff000001
  659. //
  660. // Defines for DeviceFlags in RNDIS_INITIALIZE_COMPLETE
  661. //
  662. #define RNDIS_DF_CONNECTIONLESS 0x00000001
  663. #define RNDIS_DF_CONNECTION_ORIENTED 0x00000002
  664. #define RNDIS_DF_RAW_DATA 0x00000004
  665. //
  666. // Remote NDIS medium types.
  667. //
  668. #define RNdisMedium802_3 0x00000000
  669. #define RNdisMedium802_5 0x00000001
  670. #define RNdisMediumFddi 0x00000002
  671. #define RNdisMediumWan 0x00000003
  672. #define RNdisMediumLocalTalk 0x00000004
  673. #define RNdisMediumArcnetRaw 0x00000006
  674. #define RNdisMediumArcnet878_2 0x00000007
  675. #define RNdisMediumAtm 0x00000008
  676. #define RNdisMediumWirelessWan 0x00000009
  677. #define RNdisMediumIrda 0x0000000a
  678. #define RNdisMediumCoWan 0x0000000b
  679. #define RNdisMediumMax 0x0000000d // Not a real medium, defined as an upper-bound
  680. //
  681. // Remote NDIS medium connection states.
  682. //
  683. #define RNdisMediaStateConnected 0x00000000
  684. #define RNdisMediaStateDisconnected 0x00000001
  685. //
  686. // Remote NDIS version numbers
  687. //
  688. #define RNDIS_MAJOR_VERSION 0x00000001
  689. #define RNDIS_MINOR_VERSION 0x00000000
  690. //
  691. // NdisInitialize message
  692. //
  693. typedef struct _RNDIS_INITIALIZE_REQUEST
  694. {
  695. RNDIS_REQUEST_ID RequestId;
  696. UINT32 MajorVersion;
  697. UINT32 MinorVersion;
  698. UINT32 MaxTransferSize;
  699. } RNDIS_INITIALIZE_REQUEST, *PRNDIS_INITIALIZE_REQUEST;
  700. //
  701. // Response to NdisInitialize
  702. //
  703. typedef struct _RNDIS_INITIALIZE_COMPLETE
  704. {
  705. RNDIS_REQUEST_ID RequestId;
  706. RNDIS_STATUS Status;
  707. UINT32 MajorVersion;
  708. UINT32 MinorVersion;
  709. UINT32 DeviceFlags;
  710. RNDIS_MEDIUM Medium;
  711. UINT32 MaxPacketsPerMessage;
  712. UINT32 MaxTransferSize;
  713. UINT32 PacketAlignmentFactor;
  714. UINT32 AFListOffset;
  715. UINT32 AFListSize;
  716. } RNDIS_INITIALIZE_COMPLETE, *PRNDIS_INITIALIZE_COMPLETE;
  717. //
  718. // Call manager devices only: Information about an address family
  719. // supported by the device is appended to the response to NdisInitialize.
  720. //
  721. typedef struct _RNDIS_CO_ADDRESS_FAMILY
  722. {
  723. RNDIS_AF AddressFamily;
  724. UINT32 MajorVersion;
  725. UINT32 MinorVersion;
  726. } RNDIS_CO_ADDRESS_FAMILY, *PRNDIS_CO_ADDRESS_FAMILY;
  727. //
  728. // NdisHalt message
  729. //
  730. typedef struct _RNDIS_HALT_REQUEST
  731. {
  732. RNDIS_REQUEST_ID RequestId;
  733. } RNDIS_HALT_REQUEST, *PRNDIS_HALT_REQUEST;
  734. //
  735. // NdisQueryRequest message
  736. //
  737. typedef struct _RNDIS_QUERY_REQUEST
  738. {
  739. RNDIS_REQUEST_ID RequestId;
  740. RNDIS_OID Oid;
  741. UINT32 InformationBufferLength;
  742. UINT32 InformationBufferOffset;
  743. RNDIS_HANDLE DeviceVcHandle;
  744. } RNDIS_QUERY_REQUEST, *PRNDIS_QUERY_REQUEST;
  745. //
  746. // Response to NdisQueryRequest
  747. //
  748. typedef struct _RNDIS_QUERY_COMPLETE
  749. {
  750. RNDIS_REQUEST_ID RequestId;
  751. RNDIS_STATUS Status;
  752. UINT32 InformationBufferLength;
  753. UINT32 InformationBufferOffset;
  754. } RNDIS_QUERY_COMPLETE, *PRNDIS_QUERY_COMPLETE;
  755. //
  756. // NdisSetRequest message
  757. //
  758. typedef struct _RNDIS_SET_REQUEST
  759. {
  760. RNDIS_REQUEST_ID RequestId;
  761. RNDIS_OID Oid;
  762. UINT32 InformationBufferLength;
  763. UINT32 InformationBufferOffset;
  764. RNDIS_HANDLE DeviceVcHandle;
  765. } RNDIS_SET_REQUEST, *PRNDIS_SET_REQUEST;
  766. //
  767. // Response to NdisSetRequest
  768. //
  769. typedef struct _RNDIS_SET_COMPLETE
  770. {
  771. RNDIS_REQUEST_ID RequestId;
  772. RNDIS_STATUS Status;
  773. } RNDIS_SET_COMPLETE, *PRNDIS_SET_COMPLETE;
  774. //
  775. // NdisReset message
  776. //
  777. typedef struct _RNDIS_RESET_REQUEST
  778. {
  779. UINT32 Reserved;
  780. } RNDIS_RESET_REQUEST, *PRNDIS_RESET_REQUEST;
  781. //
  782. // Response to NdisReset
  783. //
  784. typedef struct _RNDIS_RESET_COMPLETE
  785. {
  786. RNDIS_STATUS Status;
  787. UINT32 AddressingReset;
  788. } RNDIS_RESET_COMPLETE, *PRNDIS_RESET_COMPLETE;
  789. //
  790. // NdisMIndicateStatus message
  791. //
  792. typedef struct _RNDIS_INDICATE_STATUS
  793. {
  794. RNDIS_STATUS Status;
  795. UINT32 StatusBufferLength;
  796. UINT32 StatusBufferOffset;
  797. } RNDIS_INDICATE_STATUS, *PRNDIS_INDICATE_STATUS;
  798. //
  799. // Diagnostic information passed as the status buffer in
  800. // RNDIS_INDICATE_STATUS messages signifying error conditions.
  801. //
  802. typedef struct _RNDIS_DIAGNOSTIC_INFO
  803. {
  804. RNDIS_STATUS DiagStatus;
  805. UINT32 ErrorOffset;
  806. } RNDIS_DIAGNOSTIC_INFO, *PRNDIS_DIAGNOSTIC_INFO;
  807. //
  808. // NdisKeepAlive message
  809. //
  810. typedef struct _RNDIS_KEEPALIVE_REQUEST
  811. {
  812. RNDIS_REQUEST_ID RequestId;
  813. } RNDIS_KEEPALIVE_REQUEST, *PRNDIS_KEEPALIVE_REQUEST;
  814. //
  815. // Response to NdisKeepAlive
  816. //
  817. typedef struct _RNDIS_KEEPALIVE_COMPLETE
  818. {
  819. RNDIS_REQUEST_ID RequestId;
  820. RNDIS_STATUS Status;
  821. } RNDIS_KEEPALIVE_COMPLETE, *PRNDIS_KEEPALIVE_COMPLETE;
  822. //
  823. // Data message. All Offset fields contain byte offsets from the beginning
  824. // of the RNDIS_PACKET structure. All Length fields are in bytes.
  825. // VcHandle is set to 0 for connectionless data, otherwise it
  826. // contains the VC handle.
  827. //
  828. typedef struct _RNDIS_PACKET
  829. {
  830. UINT32 DataOffset;
  831. UINT32 DataLength;
  832. UINT32 OOBDataOffset;
  833. UINT32 OOBDataLength;
  834. UINT32 NumOOBDataElements;
  835. UINT32 PerPacketInfoOffset;
  836. UINT32 PerPacketInfoLength;
  837. RNDIS_HANDLE VcHandle;
  838. UINT32 Reserved;
  839. } RNDIS_PACKET, *PRNDIS_PACKET;
  840. //
  841. // Optional Out of Band data associated with a Data message.
  842. //
  843. typedef struct _RNDIS_OOBD
  844. {
  845. UINT32 Size;
  846. RNDIS_CLASS_ID Type;
  847. UINT32 ClassInformationOffset;
  848. } RNDIS_OOBD, *PRNDIS_OOBD;
  849. //
  850. // Packet extension field contents associated with a Data message.
  851. //
  852. typedef struct _RNDIS_PER_PACKET_INFO
  853. {
  854. UINT32 Size;
  855. UINT32 Type;
  856. UINT32 PerPacketInformationOffset;
  857. } RNDIS_PER_PACKET_INFO, *PRNDIS_PER_PACKET_INFO;
  858. //
  859. // Format of Information buffer passed in a SetRequest for the OID
  860. // OID_GEN_RNDIS_CONFIG_PARAMETER.
  861. //
  862. typedef struct _RNDIS_CONFIG_PARAMETER_INFO
  863. {
  864. UINT32 ParameterNameOffset;
  865. UINT32 ParameterNameLength;
  866. UINT32 ParameterType;
  867. UINT32 ParameterValueOffset;
  868. UINT32 ParameterValueLength;
  869. } RNDIS_CONFIG_PARAMETER_INFO, *PRNDIS_CONFIG_PARAMETER_INFO;
  870. //
  871. // Values for ParameterType in RNDIS_CONFIG_PARAMETER_INFO
  872. //
  873. #define RNDIS_CONFIG_PARAM_TYPE_INTEGER 0
  874. #define RNDIS_CONFIG_PARAM_TYPE_STRING 2
  875. //
  876. // CONDIS Miniport messages for connection oriented devices
  877. // that do not implement a call manager.
  878. //
  879. //
  880. // CoNdisMiniportCreateVc message
  881. //
  882. typedef struct _RCONDIS_MP_CREATE_VC
  883. {
  884. RNDIS_REQUEST_ID RequestId;
  885. RNDIS_HANDLE NdisVcHandle;
  886. } RCONDIS_MP_CREATE_VC, *PRCONDIS_MP_CREATE_VC;
  887. //
  888. // Response to CoNdisMiniportCreateVc
  889. //
  890. typedef struct _RCONDIS_MP_CREATE_VC_COMPLETE
  891. {
  892. RNDIS_REQUEST_ID RequestId;
  893. RNDIS_HANDLE DeviceVcHandle;
  894. RNDIS_STATUS Status;
  895. } RCONDIS_MP_CREATE_VC_COMPLETE, *PRCONDIS_MP_CREATE_VC_COMPLETE;
  896. //
  897. // CoNdisMiniportDeleteVc message
  898. //
  899. typedef struct _RCONDIS_MP_DELETE_VC
  900. {
  901. RNDIS_REQUEST_ID RequestId;
  902. RNDIS_HANDLE DeviceVcHandle;
  903. } RCONDIS_MP_DELETE_VC, *PRCONDIS_MP_DELETE_VC;
  904. //
  905. // Response to CoNdisMiniportDeleteVc
  906. //
  907. typedef struct _RCONDIS_MP_DELETE_VC_COMPLETE
  908. {
  909. RNDIS_REQUEST_ID RequestId;
  910. RNDIS_STATUS Status;
  911. } RCONDIS_MP_DELETE_VC_COMPLETE, *PRCONDIS_MP_DELETE_VC_COMPLETE;
  912. //
  913. // CoNdisMiniportQueryRequest message
  914. //
  915. typedef struct _RCONDIS_MP_QUERY_REQUEST
  916. {
  917. RNDIS_REQUEST_ID RequestId;
  918. RNDIS_REQUEST_TYPE RequestType;
  919. RNDIS_OID Oid;
  920. RNDIS_HANDLE DeviceVcHandle;
  921. UINT32 InformationBufferLength;
  922. UINT32 InformationBufferOffset;
  923. } RCONDIS_MP_QUERY_REQUEST, *PRCONDIS_MP_QUERY_REQUEST;
  924. //
  925. // CoNdisMiniportSetRequest message
  926. //
  927. typedef struct _RCONDIS_MP_SET_REQUEST
  928. {
  929. RNDIS_REQUEST_ID RequestId;
  930. RNDIS_REQUEST_TYPE RequestType;
  931. RNDIS_OID Oid;
  932. RNDIS_HANDLE DeviceVcHandle;
  933. UINT32 InformationBufferLength;
  934. UINT32 InformationBufferOffset;
  935. } RCONDIS_MP_SET_REQUEST, *PRCONDIS_MP_SET_REQUEST;
  936. //
  937. // CoNdisIndicateStatus message
  938. //
  939. typedef struct _RCONDIS_INDICATE_STATUS
  940. {
  941. RNDIS_HANDLE NdisVcHandle;
  942. RNDIS_STATUS Status;
  943. UINT32 StatusBufferLength;
  944. UINT32 StatusBufferOffset;
  945. } RCONDIS_INDICATE_STATUS, *PRCONDIS_INDICATE_STATUS;
  946. //
  947. // CONDIS Call/VC parameters
  948. //
  949. typedef struct _RCONDIS_SPECIFIC_PARAMETERS
  950. {
  951. UINT32 ParameterType;
  952. UINT32 ParameterLength;
  953. UINT32 ParameterOffset;
  954. } RCONDIS_SPECIFIC_PARAMETERS, *PRCONDIS_SPECIFIC_PARAMETERS;
  955. typedef struct _RCONDIS_MEDIA_PARAMETERS
  956. {
  957. UINT32 Flags;
  958. UINT32 Reserved1;
  959. UINT32 Reserved2;
  960. RCONDIS_SPECIFIC_PARAMETERS MediaSpecific;
  961. } RCONDIS_MEDIA_PARAMETERS, *PRCONDIS_MEDIA_PARAMETERS;
  962. typedef struct _RNDIS_FLOWSPEC
  963. {
  964. UINT32 TokenRate;
  965. UINT32 TokenBucketSize;
  966. UINT32 PeakBandwidth;
  967. UINT32 Latency;
  968. UINT32 DelayVariation;
  969. UINT32 ServiceType;
  970. UINT32 MaxSduSize;
  971. UINT32 MinimumPolicedSize;
  972. } RNDIS_FLOWSPEC, *PRNDIS_FLOWSPEC;
  973. typedef struct _RCONDIS_CALL_MANAGER_PARAMETERS
  974. {
  975. RNDIS_FLOWSPEC Transmit;
  976. RNDIS_FLOWSPEC Receive;
  977. RCONDIS_SPECIFIC_PARAMETERS CallMgrSpecific;
  978. } RCONDIS_CALL_MANAGER_PARAMETERS, *PRCONDIS_CALL_MANAGER_PARAMETERS;
  979. //
  980. // CoNdisMiniportActivateVc message
  981. //
  982. typedef struct _RCONDIS_MP_ACTIVATE_VC_REQUEST
  983. {
  984. RNDIS_REQUEST_ID RequestId;
  985. UINT32 Flags;
  986. RNDIS_HANDLE DeviceVcHandle;
  987. UINT32 MediaParamsOffset;
  988. UINT32 MediaParamsLength;
  989. UINT32 CallMgrParamsOffset;
  990. UINT32 CallMgrParamsLength;
  991. } RCONDIS_MP_ACTIVATE_VC_REQUEST, *PRCONDIS_MP_ACTIVATE_VC_REQUEST;
  992. //
  993. // Response to CoNdisMiniportActivateVc
  994. //
  995. typedef struct _RCONDIS_MP_ACTIVATE_VC_COMPLETE
  996. {
  997. RNDIS_REQUEST_ID RequestId;
  998. RNDIS_STATUS Status;
  999. } RCONDIS_MP_ACTIVATE_VC_COMPLETE, *PRCONDIS_MP_ACTIVATE_VC_COMPLETE;
  1000. //
  1001. // CoNdisMiniportDeactivateVc message
  1002. //
  1003. typedef struct _RCONDIS_MP_DEACTIVATE_VC_REQUEST
  1004. {
  1005. RNDIS_REQUEST_ID RequestId;
  1006. UINT32 Flags;
  1007. RNDIS_HANDLE DeviceVcHandle;
  1008. } RCONDIS_MP_DEACTIVATE_VC_REQUEST, *PRCONDIS_MP_DEACTIVATE_VC_REQUEST;
  1009. //
  1010. // Response to CoNdisMiniportDeactivateVc
  1011. //
  1012. typedef struct _RCONDIS_MP_DEACTIVATE_VC_COMPLETE
  1013. {
  1014. RNDIS_REQUEST_ID RequestId;
  1015. RNDIS_STATUS Status;
  1016. } RCONDIS_MP_DEACTIVATE_VC_COMPLETE, *PRCONDIS_MP_DEACTIVATE_VC_COMPLETE;
  1017. //
  1018. // union with all of the RNDIS messages
  1019. //
  1020. typedef union _RNDIS_MESSAGE_CONTAINER
  1021. {
  1022. RNDIS_PACKET Packet;
  1023. RNDIS_INITIALIZE_REQUEST InitializeRequest;
  1024. RNDIS_HALT_REQUEST HaltRequest;
  1025. RNDIS_QUERY_REQUEST QueryRequest;
  1026. RNDIS_SET_REQUEST SetRequest;
  1027. RNDIS_RESET_REQUEST ResetRequest;
  1028. RNDIS_KEEPALIVE_REQUEST KeepaliveRequest;
  1029. RNDIS_INDICATE_STATUS IndicateStatus;
  1030. RNDIS_INITIALIZE_COMPLETE InitializeComplete;
  1031. RNDIS_QUERY_COMPLETE QueryComplete;
  1032. RNDIS_SET_COMPLETE SetComplete;
  1033. RNDIS_RESET_COMPLETE ResetComplete;
  1034. RNDIS_KEEPALIVE_COMPLETE KeepaliveComplete;
  1035. RCONDIS_MP_CREATE_VC CoMiniportCreateVc;
  1036. RCONDIS_MP_DELETE_VC CoMiniportDeleteVc;
  1037. RCONDIS_INDICATE_STATUS CoIndicateStatus;
  1038. RCONDIS_MP_ACTIVATE_VC_REQUEST CoMiniportActivateVc;
  1039. RCONDIS_MP_DEACTIVATE_VC_REQUEST CoMiniportDeactivateVc;
  1040. RCONDIS_MP_CREATE_VC_COMPLETE CoMiniportCreateVcComplete;
  1041. RCONDIS_MP_DELETE_VC_COMPLETE CoMiniportDeleteVcComplete;
  1042. RCONDIS_MP_ACTIVATE_VC_COMPLETE CoMiniportActivateVcComplete;
  1043. RCONDIS_MP_DEACTIVATE_VC_COMPLETE CoMiniportDeactivateVcComplete;
  1044. } RNDIS_MESSAGE_CONTAINER, *PRNDIS_MESSAGE_CONTAINER;
  1045. //
  1046. // Remote NDIS message format
  1047. //
  1048. typedef struct _RNDIS_MESSAGE
  1049. {
  1050. UINT32 NdisMessageType;
  1051. //
  1052. // Total length of this message, from the beginning
  1053. // of the RNDIS_MESSAGE struct, in bytes.
  1054. //
  1055. UINT32 MessageLength;
  1056. // Actual message
  1057. RNDIS_MESSAGE_CONTAINER Message;
  1058. } RNDIS_MESSAGE, *PRNDIS_MESSAGE;
  1059. //
  1060. // Handy macros
  1061. // get the size of an RNDIS message. Pass in the message type,
  1062. // RNDIS_SET_REQUEST, RNDIS_PACKET for example
  1063. #define RNDIS_MESSAGE_SIZE(Message) \
  1064. (sizeof(Message) + (sizeof(RNDIS_MESSAGE) - sizeof(RNDIS_MESSAGE_CONTAINER)))
  1065. // get pointer to info buffer with message pointer
  1066. #define MESSAGE_TO_INFO_BUFFER(Message) \
  1067. (((PUCHAR)(Message)) + Message->InformationBufferOffset)
  1068. // get pointer to status buffer with message pointer
  1069. #define MESSAGE_TO_STATUS_BUFFER(Message) \
  1070. (((PUCHAR)(Message)) + Message->StatusBufferOffset)
  1071. // get pointer to OOBD buffer with message pointer
  1072. #define MESSAGE_TO_OOBD_BUFFER(Message) \
  1073. (((PUCHAR)(Message)) + Message->OOBDataOffset)
  1074. // get pointer to data buffer with message pointer
  1075. #define MESSAGE_TO_DATA_BUFFER(Message) \
  1076. (((PUCHAR)(Message)) + Message->PerPacketInfoOffset)
  1077. // get pointer to contained message from NDIS_MESSAGE pointer
  1078. #define RNDIS_MESSAGE_PTR_TO_MESSAGE_PTR(RndisMessage) \
  1079. ((PVOID) &RndisMessage->Message)
  1080. // get pointer to contained message from NDIS_MESSAGE pointer
  1081. #define RNDIS_MESSAGE_RAW_PTR_TO_MESSAGE_PTR(RndisMessage) \
  1082. ((PVOID) RndisMessage)
  1083. #endif // _RNDIS_H_