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.

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