Source code of Windows XP (NT5)
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.

909 lines
36 KiB

  1. /*++
  2. Copyright (c) 1990-1995 Microsoft Corporation
  3. Module Name:
  4. cdata.c
  5. Abstract:
  6. NDIS wrapper Data
  7. Author:
  8. 01-Jun-1995 JameelH Re-organization
  9. Environment:
  10. Kernel mode, FSD
  11. Revision History:
  12. 10-July-1995 KyleB Added spinlock logging debug code.
  13. --*/
  14. #include <precomp.h>
  15. #pragma hdrstop
  16. #include <initguid.h>
  17. #include <ndisguid.h>
  18. //
  19. // Memphis uses a private wdmguid.h becuase the power guids are not defined
  20. // in wdmguid.h in the build, so use "" instead of <>
  21. //
  22. #include "wdmguid.h"
  23. //
  24. // Define the module number for debug code.
  25. //
  26. #define MODULE_NUMBER MODULE_DATA
  27. OID_SETINFO_HANDLER ndisMSetInfoHandlers[] =
  28. {
  29. { OID_GEN_CURRENT_PACKET_FILTER, ndisMSetPacketFilter } ,
  30. { OID_GEN_CURRENT_LOOKAHEAD, ndisMSetCurrentLookahead } ,
  31. { OID_GEN_PROTOCOL_OPTIONS, ndisMSetProtocolOptions } ,
  32. { OID_802_3_MULTICAST_LIST, ndisMSetMulticastList } ,
  33. { OID_802_5_CURRENT_FUNCTIONAL, ndisMSetFunctionalAddress } ,
  34. { OID_802_5_CURRENT_GROUP, ndisMSetGroupAddress } ,
  35. { OID_FDDI_LONG_MULTICAST_LIST, ndisMSetFddiMulticastList } ,
  36. { OID_PNP_ADD_WAKE_UP_PATTERN, ndisMSetAddWakeUpPattern } ,
  37. { OID_PNP_REMOVE_WAKE_UP_PATTERN, ndisMSetRemoveWakeUpPattern } ,
  38. { OID_PNP_ENABLE_WAKE_UP, ndisMSetEnableWakeUp },
  39. { 0, NULL }
  40. };
  41. BOOLEAN ndisMediaTypeCl[NdisMediumMax] =
  42. {
  43. TRUE,
  44. TRUE,
  45. TRUE,
  46. FALSE,
  47. TRUE,
  48. TRUE,
  49. TRUE,
  50. TRUE,
  51. FALSE,
  52. TRUE,
  53. TRUE,
  54. TRUE,
  55. FALSE,
  56. FALSE
  57. };
  58. NDIS_MEDIUM ndisMediumBuffer[NdisMediumMax + EXPERIMENTAL_SIZE] = // Keep some space for experimental media
  59. {
  60. NdisMedium802_3,
  61. NdisMedium802_5,
  62. NdisMediumFddi,
  63. NdisMediumWan,
  64. NdisMediumLocalTalk,
  65. NdisMediumDix,
  66. NdisMediumArcnetRaw,
  67. NdisMediumArcnet878_2,
  68. NdisMediumAtm,
  69. NdisMediumWirelessWan,
  70. NdisMediumIrda,
  71. NdisMediumBpc,
  72. NdisMediumCoWan,
  73. NdisMedium1394
  74. };
  75. NDIS_MEDIUM * ndisMediumArray = ndisMediumBuffer;
  76. UINT ndisMediumArraySize = NdisMediumMax * sizeof(NDIS_MEDIUM);
  77. UINT ndisMediumArrayMaxSize = sizeof(ndisMediumBuffer);
  78. WCHAR ndisHexLookUp[] = {L'0', L'1', L'2', L'3', L'4', L'5', L'6', L'7', L'8', L'9', L'A', L'B', L'C', L'D', L'E', L'F'};
  79. ULONG ndisInstanceNumber = 0;
  80. UINT ndisPacketStackSize = NUM_PACKET_STACKS;
  81. #ifdef ALLOC_DATA_PRAGMA
  82. #pragma data_seg("PAGE")
  83. #endif
  84. //
  85. // Array of the GUIDs that represent the General OIDs
  86. //
  87. NDIS_GUID ndisSupportedGuids[36] =
  88. {
  89. //
  90. // GUIDs that do get passed to the miniport.
  91. //
  92. {{0x981f2d7f, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ENUMERATE_ADAPTER
  93. 0,
  94. -1,
  95. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_NDIS_ONLY | fNDIS_GUID_ALLOW_READ
  96. },
  97. {{0x981f2d80, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_NOTIFY_ADAPTER_REMOVAL
  98. 0,
  99. -1,
  100. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_NDIS_ONLY | fNDIS_GUID_TO_STATUS
  101. },
  102. {{0x981f2d81, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_NOTIFY_ADAPTER_ARRIVAL
  103. 0,
  104. -1,
  105. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_NDIS_ONLY | fNDIS_GUID_TO_STATUS
  106. },
  107. {{0x827c0a6fL, 0xfeb0, 0x11d0, 0xbd, 0x26, 0x00, 0xaa, 0x00, 0xb7, 0xb3, 0x2a}, // GUID_POWER_DEVICE_ENABLE
  108. 0,
  109. -1,
  110. fNDIS_GUID_NDIS_ONLY
  111. },
  112. {{0xa9546a82L, 0xfeb0, 0x11d0, 0xbd, 0x26, 0x00, 0xaa, 0x00, 0xb7, 0xb3, 0x2a}, // GUID_POWER_DEVICE_WAKE_ENABLE
  113. 0,
  114. -1,
  115. fNDIS_GUID_NDIS_ONLY
  116. },
  117. {{0x981f2d82, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ENUMERATE_VC
  118. 0,
  119. 0, // No data for this GUID
  120. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_NDIS_ONLY | fNDIS_GUID_ALLOW_READ
  121. },
  122. {{0x981f2d79, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_NOTIFY_VC_REMOVAL
  123. 0,
  124. 0, // No data for this GUID
  125. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_NDIS_ONLY | fNDIS_GUID_TO_STATUS | fNDIS_GUID_CO_NDIS
  126. },
  127. {{0x182f9e0c, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_NOTIFY_VC_ARRIVAL
  128. 0,
  129. 0, // No data for this GUID
  130. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_NDIS_ONLY | fNDIS_GUID_TO_STATUS | fNDIS_GUID_CO_NDIS
  131. },
  132. {{0xa14f1c97, 0x8839, 0x4f8a, 0x99, 0x96, 0xa2, 0x89, 0x96, 0xeb, 0xbf, 0x1d}, // GUID_NDIS_WAKE_ON_MAGIC_PACKET_ONLY
  133. 0,
  134. -1,
  135. fNDIS_GUID_NDIS_ONLY
  136. },
  137. //
  138. // General oids.
  139. //
  140. {{0x5ec10354, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_HARDWARE_STATUS
  141. OID_GEN_HARDWARE_STATUS,
  142. 4,
  143. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  144. },
  145. {{0x5ec10355, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_MEDIA_SUPPORTED
  146. OID_GEN_MEDIA_SUPPORTED,
  147. 4,
  148. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ARRAY | fNDIS_GUID_ALLOW_READ
  149. },
  150. {{0x5ec10356, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_MEDIA_IN_USE
  151. OID_GEN_MEDIA_IN_USE,
  152. 4,
  153. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ARRAY | fNDIS_GUID_ALLOW_READ
  154. },
  155. {{0x5ec10357, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_MAXIMUM_LOOKAHEAD
  156. OID_GEN_MAXIMUM_LOOKAHEAD,
  157. 4,
  158. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  159. },
  160. {{0x5ec10358, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_MAXIMUM_FRAME_SIZE
  161. OID_GEN_MAXIMUM_FRAME_SIZE,
  162. 4,
  163. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  164. },
  165. {{0x5ec10359, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_LINK_SPEED
  166. OID_GEN_LINK_SPEED,
  167. 4,
  168. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  169. },
  170. {{0x5ec1035a, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_TRANSMIT_BUFFER_SPACE
  171. OID_GEN_TRANSMIT_BUFFER_SPACE,
  172. 4,
  173. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  174. },
  175. {{0x5ec1035b, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_RECEIVE_BUFFER_SPACE
  176. OID_GEN_RECEIVE_BUFFER_SPACE,
  177. 4,
  178. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  179. },
  180. {{0x5ec1035c, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_TRANSMIT_BLOCK_SIZE
  181. OID_GEN_TRANSMIT_BLOCK_SIZE,
  182. 4,
  183. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  184. },
  185. {{0x5ec1035d, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_RECEIVE_BLOCK_SIZE
  186. OID_GEN_RECEIVE_BLOCK_SIZE,
  187. 4,
  188. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  189. },
  190. {{0x5ec1035e, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_VENDOR_ID
  191. OID_GEN_VENDOR_ID,
  192. 4,
  193. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  194. },
  195. {{0x5ec1035f, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_VENDOR_DESCRIPTION
  196. OID_GEN_VENDOR_DESCRIPTION,
  197. -1,
  198. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ANSI_STRING | fNDIS_GUID_ALLOW_READ
  199. },
  200. {{0x5ec10360, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CURRENT_PACKET_FILTER
  201. OID_GEN_CURRENT_PACKET_FILTER,
  202. 4,
  203. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  204. },
  205. {{0x5ec10361, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CURRENT_LOOKAHEAD
  206. OID_GEN_CURRENT_LOOKAHEAD,
  207. 4,
  208. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  209. },
  210. {{0x5ec10362, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_DRIVER_VERSION
  211. OID_GEN_DRIVER_VERSION,
  212. 2,
  213. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  214. },
  215. {{0x5ec10363, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_MAXIMUM_TOTAL_SIZE
  216. OID_GEN_MAXIMUM_TOTAL_SIZE,
  217. 4,
  218. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  219. },
  220. {{0x5ec10365, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_MAC_OPTIONS
  221. OID_GEN_MAC_OPTIONS,
  222. 4,
  223. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  224. },
  225. {{0x5ec10366, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_MEDIA_CONNECT_STATUS
  226. OID_GEN_MEDIA_CONNECT_STATUS,
  227. 4,
  228. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  229. },
  230. {{0x5ec10367, 0xa61a, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_MAXIMUM_SEND_PACKETS
  231. OID_GEN_MAXIMUM_SEND_PACKETS,
  232. 4,
  233. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  234. },
  235. {{0x447956f9, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_VENDOR_DRIVER_VERSION
  236. OID_GEN_VENDOR_DRIVER_VERSION,
  237. 4,
  238. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  239. },
  240. {{0x765dc702, 0xc5e8, 0x4b67, 0x84, 0x3b, 0x3f, 0x5a, 0x4f, 0xf2, 0x64, 0x8b}, // GUID_NDIS_GEN_VLAN_ID
  241. OID_GEN_VLAN_ID,
  242. sizeof(ULONG),
  243. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  244. },
  245. {{0x418ca16d, 0x3937, 0x4208, 0x94, 0x0a, 0xec, 0x61, 0x96, 0x27, 0x80, 0x85}, // GUID_NDIS_GEN_PHYSICAL_MEDIUM
  246. OID_GEN_PHYSICAL_MEDIUM,
  247. sizeof(ULONG),
  248. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  249. },
  250. //
  251. // General required statistics.
  252. //
  253. {{0x447956fa, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_XMIT_OK
  254. OID_GEN_XMIT_OK,
  255. sizeof(ULONG64),
  256. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  257. },
  258. {{0x447956fb, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_RCV_OK
  259. OID_GEN_RCV_OK,
  260. sizeof(ULONG64),
  261. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  262. },
  263. {{0x447956fc, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_XMIT_ERROR
  264. OID_GEN_XMIT_ERROR,
  265. 4,
  266. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  267. },
  268. {{0x447956fd, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_RCV_ERROR
  269. OID_GEN_RCV_ERROR,
  270. 4,
  271. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  272. },
  273. {{0x447956fe, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_RCV_NO_BUFFER
  274. OID_GEN_RCV_NO_BUFFER,
  275. 4,
  276. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  277. }
  278. };
  279. NDIS_GUID ndisCoSupportedGuids[16] =
  280. {
  281. //
  282. // CoNDIS general required oids
  283. //
  284. {{0x791ad192, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_HARDWARE_STATUS
  285. OID_GEN_CO_HARDWARE_STATUS,
  286. 4,
  287. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  288. },
  289. {{0x791ad193, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_MEDIA_SUPPORTED
  290. OID_GEN_CO_MEDIA_SUPPORTED,
  291. 4,
  292. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ARRAY | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  293. },
  294. {{0x791ad194, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_MEDIA_IN_USE
  295. OID_GEN_CO_MEDIA_IN_USE,
  296. 4,
  297. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ARRAY | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  298. },
  299. {{0x791ad195, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_LINK_SPEED
  300. OID_GEN_CO_LINK_SPEED,
  301. 8,
  302. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  303. },
  304. {{0x791ad196, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_VENDOR_ID
  305. OID_GEN_CO_VENDOR_ID,
  306. 4,
  307. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  308. },
  309. {{0x791ad197, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_VENDOR_DESCRIPTION
  310. OID_GEN_CO_VENDOR_DESCRIPTION,
  311. -1,
  312. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ANSI_STRING | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  313. },
  314. {{0x791ad198, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_DRIVER_VERSION
  315. OID_GEN_CO_DRIVER_VERSION,
  316. 2,
  317. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  318. },
  319. {{0x791ad19a, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_MAC_OPTIONS
  320. OID_GEN_CO_MAC_OPTIONS,
  321. 4,
  322. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  323. },
  324. {{0x791ad19b, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_MEDIA_CONNECT_STATUS
  325. OID_GEN_CO_MEDIA_CONNECT_STATUS,
  326. 4,
  327. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  328. },
  329. {{0x791ad19c, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_VENDOR_DRIVER_VERSION
  330. OID_GEN_CO_VENDOR_DRIVER_VERSION,
  331. 4,
  332. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  333. },
  334. {{0x791ad19d, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_MINIMUM_LINK_SPEED
  335. OID_GEN_CO_MINIMUM_LINK_SPEED,
  336. 8,
  337. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  338. },
  339. //
  340. // CoNDIS general required statistics.
  341. //
  342. {{0x0a214805, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // NDIS_GUID_GEN_CO_XMIT_PDUS_OK
  343. OID_GEN_CO_XMIT_PDUS_OK,
  344. sizeof(ULONG64),
  345. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  346. },
  347. {{0x0a214806, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_RCV_PDUS_OK
  348. OID_GEN_CO_RCV_PDUS_OK,
  349. sizeof(ULONG64),
  350. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  351. },
  352. {{0x0a214807, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_XMIT_PDUS_ERROR
  353. OID_GEN_CO_XMIT_PDUS_ERROR,
  354. 4,
  355. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  356. },
  357. {{0x0a214808, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_RCV_PDUS_ERROR
  358. OID_GEN_CO_RCV_PDUS_ERROR,
  359. 4,
  360. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  361. },
  362. {{0x0a214809, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_GEN_CO_RCV_PDUS_NO_BUFFER
  363. OID_GEN_CO_RCV_PDUS_NO_BUFFER,
  364. 4,
  365. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  366. }
  367. };
  368. NDIS_GUID ndisMediaSupportedGuids[75] =
  369. {
  370. //
  371. // 802.3 required oids.
  372. //
  373. {{0x447956ff, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_3_PERMANENT_ADDRESS
  374. OID_802_3_PERMANENT_ADDRESS,
  375. 6,
  376. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  377. },
  378. {{0x44795700, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_3_CURRENT_ADDRESS
  379. OID_802_3_CURRENT_ADDRESS,
  380. 6,
  381. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  382. },
  383. {{0x44795701, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_3_MULTICAST_LIST
  384. OID_802_3_MULTICAST_LIST,
  385. 6,
  386. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ARRAY | fNDIS_GUID_ALLOW_READ
  387. },
  388. {{0x44795702, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_3_MAXIMUM_LIST_SIZE
  389. OID_802_3_MAXIMUM_LIST_SIZE,
  390. 4,
  391. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  392. },
  393. {{0x44795703, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_3_MAC_OPTIONS
  394. OID_802_3_MAC_OPTIONS,
  395. 4,
  396. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  397. },
  398. //
  399. // 802.3 required statistics oids.
  400. //
  401. {{0x44795704, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_3_RCV_ERROR_ALIGNMENT
  402. OID_802_3_RCV_ERROR_ALIGNMENT,
  403. 4,
  404. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  405. },
  406. {{0x44795705, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_3_XMIT_ONE_COLLISION
  407. OID_802_3_XMIT_ONE_COLLISION,
  408. 4,
  409. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  410. },
  411. {{0x44795706, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_3_XMIT_MORE_COLLISIONS
  412. OID_802_3_XMIT_MORE_COLLISIONS,
  413. 4,
  414. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  415. },
  416. //
  417. // 802.5 required oids.
  418. //
  419. {{0x44795707, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_5_PERMANENT_ADDRESS
  420. OID_802_5_PERMANENT_ADDRESS,
  421. 6,
  422. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  423. },
  424. {{0x44795708, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_5_CURRENT_ADDRESS
  425. OID_802_5_CURRENT_ADDRESS,
  426. 6,
  427. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  428. },
  429. {{0x44795709, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_5_CURRENT_FUNCTIONAL
  430. OID_802_5_CURRENT_FUNCTIONAL,
  431. 4,
  432. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  433. },
  434. {{0x4479570a, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_5_CURRENT_GROUP
  435. OID_802_5_CURRENT_GROUP,
  436. 4,
  437. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  438. },
  439. {{0x4479570b, 0xa61b, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_5_LAST_OPEN_STATUS
  440. OID_802_5_LAST_OPEN_STATUS,
  441. 4,
  442. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  443. },
  444. {{0x890a36ec, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_5_CURRENT_RING_STATUS
  445. OID_802_5_CURRENT_RING_STATUS,
  446. 4,
  447. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  448. },
  449. {{0xacf14032, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_5_CURRENT_RING_STATE
  450. OID_802_5_CURRENT_RING_STATE,
  451. 4,
  452. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  453. },
  454. //
  455. // 802.5 required statistics oids.
  456. //
  457. {{0xacf14033, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_5_LINE_ERRORS
  458. OID_802_5_LINE_ERRORS,
  459. 4,
  460. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  461. },
  462. {{0xacf14034, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_802_5_LOST_FRAMES
  463. OID_802_5_LOST_FRAMES,
  464. 4,
  465. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  466. },
  467. //
  468. // FDDI required oids.
  469. //
  470. {{0xacf14035, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_LONG_PERMANENT_ADDR
  471. OID_FDDI_LONG_PERMANENT_ADDR,
  472. 6,
  473. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  474. },
  475. {{0xacf14036, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_LONG_CURRENT_ADDR
  476. OID_FDDI_LONG_CURRENT_ADDR,
  477. 6,
  478. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  479. },
  480. {{0xacf14037, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_LONG_MULTICAST_LIST
  481. OID_FDDI_LONG_MULTICAST_LIST,
  482. 6,
  483. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ARRAY | fNDIS_GUID_ALLOW_READ
  484. },
  485. {{0xacf14038, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_LONG_MAX_LIST_SIZE
  486. OID_FDDI_LONG_MAX_LIST_SIZE,
  487. 4,
  488. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  489. },
  490. {{0xacf14039, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_SHORT_PERMANENT_ADDR
  491. OID_FDDI_SHORT_PERMANENT_ADDR,
  492. 2,
  493. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  494. },
  495. {{0xacf1403a, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_SHORT_CURRENT_ADDR
  496. OID_FDDI_SHORT_CURRENT_ADDR,
  497. 2,
  498. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  499. },
  500. {{0xacf1403b, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_SHORT_MULTICAST_LIST
  501. OID_FDDI_SHORT_MULTICAST_LIST,
  502. 2,
  503. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ARRAY | fNDIS_GUID_ALLOW_READ
  504. },
  505. {{0xacf1403c, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_SHORT_MAX_LIST_SIZE
  506. OID_FDDI_SHORT_MAX_LIST_SIZE,
  507. 4,
  508. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  509. },
  510. //
  511. // FDDI required statistics oids.
  512. //
  513. {{0xacf1403d, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_ATTACHMENT_TYPE
  514. OID_FDDI_ATTACHMENT_TYPE,
  515. 4,
  516. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  517. },
  518. {{0xacf1403e, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_UPSTREAM_NODE_LONG
  519. OID_FDDI_UPSTREAM_NODE_LONG,
  520. 6,
  521. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  522. },
  523. {{0xacf1403f, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_DOWNSTREAM_NODE_LONG
  524. OID_FDDI_DOWNSTREAM_NODE_LONG,
  525. 6,
  526. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  527. },
  528. {{0xacf14040, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_FRAME_ERRORS
  529. OID_FDDI_FRAME_ERRORS,
  530. 4,
  531. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  532. },
  533. {{0xacf14041, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_FRAMES_LOST
  534. OID_FDDI_FRAMES_LOST,
  535. 4,
  536. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  537. },
  538. {{0xacf14042, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_RING_MGT_STATE
  539. OID_FDDI_RING_MGT_STATE,
  540. 4,
  541. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  542. },
  543. {{0xacf14043, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_LCT_FAILURES
  544. OID_FDDI_LCT_FAILURES,
  545. 4,
  546. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  547. },
  548. {{0xacf14044, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_LEM_REJECTS
  549. OID_FDDI_LEM_REJECTS,
  550. 4,
  551. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  552. },
  553. {{0xacf14045, 0xa61c, 0x11d0, 0x8d, 0xd4, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_FDDI_LCONNECTION_STATE
  554. OID_FDDI_LCONNECTION_STATE,
  555. 4,
  556. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  557. },
  558. //
  559. // Wireless (802.11) OIDs.
  560. //
  561. {{0x2504b6c2, 0x1fa5, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_BSSID
  562. OID_802_11_BSSID,
  563. sizeof(NDIS_802_11_MAC_ADDRESS),
  564. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  565. },
  566. {{0x7d2a90ea, 0x2041, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_SSID
  567. OID_802_11_SSID,
  568. sizeof(NDIS_802_11_SSID),
  569. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  570. },
  571. {{0x8531d6e6, 0x2041, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_NETWORK_TYPES_SUPPORTED
  572. OID_802_11_NETWORK_TYPES_SUPPORTED,
  573. -1,
  574. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  575. },
  576. {{0x857e2326, 0x2041, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_NETWORK_TYPE_IN_USE
  577. OID_802_11_NETWORK_TYPE_IN_USE,
  578. sizeof(NDIS_802_11_NETWORK_TYPE),
  579. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  580. },
  581. {{0x85be837c, 0x2041, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_POWER_MODE
  582. OID_802_11_POWER_MODE,
  583. sizeof(NDIS_802_11_POWER_MODE),
  584. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  585. },
  586. {{0x11e6ba76, 0x2053, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_TX_POWER_LEVEL
  587. OID_802_11_TX_POWER_LEVEL,
  588. sizeof(ULONG),
  589. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  590. },
  591. {{0x1507db16, 0x2053, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_RSSI
  592. OID_802_11_RSSI,
  593. sizeof(ULONG),
  594. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  595. },
  596. {{0x155689b8, 0x2053, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_RSSI_TRIGGER
  597. OID_802_11_RSSI_TRIGGER,
  598. sizeof(ULONG),
  599. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  600. },
  601. {{0x69526f9a, 0x2062, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_BSSID_LIST
  602. OID_802_11_BSSID_LIST,
  603. -1,
  604. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  605. },
  606. {{0x697d5a7e, 0x2062, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_INFRASTRUCTURE_MODE
  607. OID_802_11_INFRASTRUCTURE_MODE,
  608. sizeof(ULONG),
  609. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  610. },
  611. {{0x69aaa7c4, 0x2062, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_FRAGMENTATION_THRESHOLD
  612. OID_802_11_FRAGMENTATION_THRESHOLD,
  613. sizeof(ULONG),
  614. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  615. },
  616. {{0x0134d07e, 0x2064, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_RTS_THRESHOLD
  617. OID_802_11_RTS_THRESHOLD,
  618. sizeof(ULONG),
  619. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  620. },
  621. {{0x01779336, 0x2064, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_NUMBER_OF_ANTENNAS
  622. OID_802_11_NUMBER_OF_ANTENNAS,
  623. sizeof(ULONG),
  624. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  625. },
  626. {{0x01ac07a2, 0x2064, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_RX_ANTENNA_SELECTED
  627. OID_802_11_RX_ANTENNA_SELECTED,
  628. sizeof(ULONG),
  629. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  630. },
  631. {{0x01dbb74a, 0x2064, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_TX_ANTENNA_SELECTED
  632. OID_802_11_TX_ANTENNA_SELECTED,
  633. sizeof(ULONG),
  634. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  635. },
  636. {{0x49db8722, 0x2068, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_SUPPORTED_RATES
  637. OID_802_11_SUPPORTED_RATES,
  638. -1,
  639. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  640. },
  641. {{0x452ee08e, 0x2536, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_DESIRED_RATES
  642. OID_802_11_DESIRED_RATES,
  643. -1,
  644. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  645. },
  646. {{0x4a4df982, 0x2068, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_CONFIGURATION
  647. OID_802_11_CONFIGURATION,
  648. sizeof(NDIS_802_11_CONFIGURATION),
  649. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  650. },
  651. {{0x42bb73b0, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_STATISTICS
  652. OID_802_11_STATISTICS,
  653. sizeof(NDIS_802_11_STATISTICS),
  654. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  655. },
  656. {{0x4307bff0, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_ADD_WEP
  657. OID_802_11_ADD_WEP,
  658. sizeof(NDIS_802_11_WEP),
  659. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  660. },
  661. {{0x433c345c, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_REMOVE_WEP
  662. OID_802_11_REMOVE_WEP,
  663. sizeof(ULONG),
  664. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  665. },
  666. {{0x43671f40, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_DISASSOCIATE
  667. OID_802_11_DISASSOCIATE,
  668. sizeof(ULONG),
  669. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  670. },
  671. {{0x0d9e01e1, 0xba70, 0x11d4, 0xb6, 0x75, 0x00, 0x20, 0x48, 0x57, 0x03, 0x37}, // GUID_NDIS_802_11_BSSID_LIST_SCAN
  672. OID_802_11_BSSID_LIST_SCAN,
  673. sizeof(ULONG),
  674. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  675. },
  676. {{0x43920a24, 0x2129, 0x11d4, 0x97, 0xeb, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_AUTHENTICATION_MODE
  677. OID_802_11_AUTHENTICATION_MODE,
  678. sizeof(ULONG),
  679. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  680. },
  681. {{0x6733c4e9, 0x4792, 0x11d4, 0x97, 0xf1, 0x00, 0xc0, 0x4f, 0x79, 0xc4, 0x03}, // GUID_NDIS_802_11_PRIVACY_FILTER
  682. OID_802_11_PRIVACY_FILTER,
  683. sizeof(ULONG),
  684. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  685. },
  686. {{0xb027a21f, 0x3cfa, 0x4125, 0x80, 0x0b, 0x3f, 0x7a, 0x18, 0xfd, 0xdc, 0xdc}, // GUID_NDIS_802_11_WEP_STATUS
  687. OID_802_11_WEP_STATUS,
  688. sizeof(ULONG),
  689. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  690. },
  691. {{0x748b14e8, 0x32ee, 0x4425, 0xb9, 0x1b, 0xc9, 0x84, 0x8c, 0x58, 0xb5, 0x5a}, // GUID_NDIS_802_11_RELOAD_DEFAULTS
  692. OID_802_11_RELOAD_DEFAULTS,
  693. sizeof(ULONG),
  694. fNDIS_GUID_TO_OID | fNDIS_GUID_ALLOW_READ
  695. },
  696. //
  697. // ATM required oids.
  698. //
  699. {{0x791ad19e, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_SUPPORTED_VC_RATES
  700. OID_ATM_SUPPORTED_VC_RATES,
  701. 8,
  702. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  703. },
  704. {{0x791ad19f, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_SUPPORTED_SERVICE_CATEGORY
  705. OID_ATM_SUPPORTED_SERVICE_CATEGORY,
  706. 4,
  707. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  708. },
  709. {{0x791ad1a0, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_SUPPORTED_AAL_TYPES
  710. OID_ATM_SUPPORTED_AAL_TYPES,
  711. 4,
  712. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  713. },
  714. {{0x791ad1a1, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_HW_CURRENT_ADDRESS
  715. OID_ATM_HW_CURRENT_ADDRESS,
  716. 6,
  717. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  718. },
  719. {{0x791ad1a2, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_MAX_ACTIVE_VCS
  720. OID_ATM_MAX_ACTIVE_VCS,
  721. 4,
  722. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  723. },
  724. {{0x791ad1a3, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_MAX_ACTIVE_VCI_BITS
  725. OID_ATM_MAX_ACTIVE_VCI_BITS,
  726. 4,
  727. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  728. },
  729. {{0x791ad1a4, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_MAX_ACTIVE_VPI_BITS
  730. OID_ATM_MAX_ACTIVE_VPI_BITS,
  731. 4,
  732. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  733. },
  734. {{0x791ad1a5, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_MAX_AAL0_PACKET_SIZE
  735. OID_ATM_MAX_AAL0_PACKET_SIZE,
  736. 4,
  737. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  738. },
  739. {{0x791ad1a6, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_MAX_AAL1_PACKET_SIZE
  740. OID_ATM_MAX_AAL1_PACKET_SIZE,
  741. 4,
  742. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  743. },
  744. {{0x791ad1a7, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_MAX_AAL34_PACKET_SIZE
  745. OID_ATM_MAX_AAL34_PACKET_SIZE,
  746. 4,
  747. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  748. },
  749. {{0x791ad191, 0xe35c, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_MAX_AAL5_PACKET_SIZE
  750. OID_ATM_MAX_AAL5_PACKET_SIZE,
  751. 4,
  752. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  753. },
  754. //
  755. // ATM required statistics oids.
  756. //
  757. {{0x0a21480a, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_RCV_CELLS_OK
  758. OID_ATM_RCV_CELLS_OK,
  759. 8,
  760. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  761. },
  762. {{0x0a21480b, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_XMIT_CELLS_OK
  763. OID_ATM_XMIT_CELLS_OK,
  764. 8,
  765. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  766. },
  767. {{0x0a21480c, 0xe35f, 0x11d0, 0x96, 0x92, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_ATM_RCV_CELLS_DROPPED
  768. OID_ATM_RCV_CELLS_DROPPED,
  769. 8,
  770. fNDIS_GUID_NOT_SETTABLE | fNDIS_GUID_TO_OID | fNDIS_GUID_CO_NDIS | fNDIS_GUID_ALLOW_READ
  771. }
  772. };
  773. NDIS_GUID ndisStatusSupportedGuids[10] =
  774. {
  775. //
  776. // NDIS Status indications (WMI Events)
  777. //
  778. {
  779. {0x981f2d76, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c},
  780. NDIS_STATUS_RESET_START,
  781. 0,
  782. fNDIS_GUID_TO_STATUS
  783. },
  784. {
  785. {0x981f2d77, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c},
  786. NDIS_STATUS_RESET_END,
  787. 0,
  788. fNDIS_GUID_TO_STATUS
  789. },
  790. {
  791. {0x981f2d7d, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c},
  792. NDIS_STATUS_MEDIA_CONNECT,
  793. 0,
  794. fNDIS_GUID_TO_STATUS
  795. },
  796. {
  797. {0x981f2d7e, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c},
  798. NDIS_STATUS_MEDIA_DISCONNECT,
  799. 0,
  800. fNDIS_GUID_TO_STATUS
  801. },
  802. {
  803. {0x981f2d84, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c},
  804. NDIS_STATUS_MEDIA_SPECIFIC_INDICATION,
  805. 1,
  806. fNDIS_GUID_TO_STATUS | fNDIS_GUID_ARRAY
  807. },
  808. {
  809. {0x981f2d85, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c},
  810. NDIS_STATUS_LINK_SPEED_CHANGE,
  811. 8, // sizeof(NDIS_CO_LINK_SPEED)
  812. fNDIS_GUID_TO_STATUS
  813. },
  814. /* The following are not really status indications, however we park them here for convenience */
  815. {
  816. {0x5413531c, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_NOTIFY_BIND
  817. 0,
  818. -1,
  819. 0,
  820. },
  821. {
  822. {0x6e3ce1ec, 0xb1f3, 0x11d0, 0x8d, 0xd7, 0x00, 0xc0, 0x4f, 0xc3, 0x35, 0x8c}, // GUID_NDIS_NOTIFY_UNBIND
  823. 0,
  824. -1,
  825. 0,
  826. },
  827. {
  828. {0x5f81cfd0, 0xf046, 0x4342, 0xaf, 0x61, 0x89, 0x5a, 0xce, 0xda, 0xef, 0xd9}, // GUID_NDIS_NOTIFY_DEVICE_POWER_ON
  829. 0,
  830. (ULONG)-1,
  831. 0,
  832. },
  833. {
  834. {0x81bc8189, 0xb026, 0x46ab, 0xb9, 0x64, 0xf1, 0x82, 0xe3, 0x42, 0x93, 0x4e}, // GUID_NDIS_NOTIFY_DEVICE_POWER_OFF
  835. 0,
  836. (ULONG)-1,
  837. 0,
  838. }
  839. };
  840. #ifdef ALLOC_DATA_PRAGMA
  841. #pragma data_seg()
  842. #endif