NtDDNdis.h 114 KB

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