emulator/emulatorbsp/wpdpack/include/ntddndis.h
changeset 0 cec860690d41
equal deleted inserted replaced
-1:000000000000 0:cec860690d41
       
     1 /*++ BUILD Version: 0001                // Increment this if a change has global effects
       
     2    Copyright (c) 1990-1993  Microsoft Corporation
       
     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    Steve Wood (stevewo) 27-May-1990
       
    10    Revision History:
       
    11    Adam Barr (adamba)           04-Nov-1992             added the correct values for NDIS 3.0.
       
    12    Jameel Hyder (jameelh)       01-Aug-95               added Pnp IoCTLs and structures
       
    13    Kyle Brandon (kyleb) 09/24/96                added general co ndis oids.
       
    14    -- */
       
    15 #ifndef _NTDDNDIS_
       
    16 #define _NTDDNDIS_
       
    17 //
       
    18 // Device Name - this string is the name of the device.  It is the name
       
    19 // that should be passed to NtOpenFile when accessing the device.
       
    20 //
       
    21 // Note:  For devices that support multiple units, it should be suffixed
       
    22 //                with the Ascii representation of the unit number.
       
    23 //
       
    24 #define DD_NDIS_DEVICE_NAME "\\Device\\UNKNOWN"
       
    25 //
       
    26 // NtDeviceIoControlFile IoControlCode values for this device.
       
    27 //
       
    28 // Warning:  Remember that the low two bits of the code specify how the
       
    29 //                       buffers are passed to the driver!
       
    30 //
       
    31 #define _NDIS_CONTROL_CODE(request,method) \
       
    32 			CTL_CODE(FILE_DEVICE_PHYSICAL_NETCARD, request, method, FILE_ANY_ACCESS)
       
    33 #define IOCTL_NDIS_QUERY_GLOBAL_STATS	_NDIS_CONTROL_CODE( 0, METHOD_OUT_DIRECT )
       
    34 #define IOCTL_NDIS_QUERY_ALL_STATS		_NDIS_CONTROL_CODE( 1, METHOD_OUT_DIRECT )
       
    35 #define IOCTL_NDIS_ADD_DEVICE			_NDIS_CONTROL_CODE( 2, METHOD_BUFFERED )
       
    36 #define IOCTL_NDIS_DELETE_DEVICE		_NDIS_CONTROL_CODE( 3, METHOD_BUFFERED )
       
    37 #define IOCTL_NDIS_TRANSLATE_NAME		_NDIS_CONTROL_CODE( 4, METHOD_BUFFERED )
       
    38 #define IOCTL_NDIS_ADD_TDI_DEVICE		_NDIS_CONTROL_CODE( 5, METHOD_BUFFERED )
       
    39 #define IOCTL_NDIS_NOTIFY_PROTOCOL		_NDIS_CONTROL_CODE( 6, METHOD_BUFFERED )
       
    40 #define	IOCTL_NDIS_GET_LOG_DATA			_NDIS_CONTROL_CODE( 7, METHOD_OUT_DIRECT )
       
    41 //
       
    42 // NtDeviceIoControlFile InputBuffer/OutputBuffer record structures for
       
    43 // this device.
       
    44 //
       
    45 //
       
    46 // This is the type of an NDIS OID value.
       
    47 //
       
    48 typedef ULONG NDIS_OID, *PNDIS_OID;
       
    49 //
       
    50 // IOCTL_NDIS_QUERY_ALL_STATS returns a sequence of these, packed
       
    51 // together (no padding is required since statistics all have
       
    52 // four or eight bytes of data).
       
    53 //
       
    54 typedef struct _NDIS_STATISTICS_VALUE {
       
    55     NDIS_OID Oid;
       
    56     ULONG DataLength;
       
    57     UCHAR Data[1];		// variable length
       
    58 
       
    59 } NDIS_STATISTICS_VALUE, *PNDIS_STATISTICS_VALUE;
       
    60 
       
    61 //
       
    62 // Structure used by TRANSLATE_NAME IOCTL
       
    63 //
       
    64 typedef struct _NET_PNP_ID {
       
    65     ULONG ClassId;
       
    66     ULONG Token;
       
    67 } NET_PNP_ID, *PNET_PNP_ID;
       
    68 
       
    69 typedef struct _NET_PNP_TRANSLATE_LIST {
       
    70     ULONG BytesNeeded;
       
    71     NET_PNP_ID IdArray[ANYSIZE_ARRAY];
       
    72 } NET_PNP_TRANSLATE_LIST, *PNET_PNP_TRANSLATE_LIST;
       
    73 
       
    74 //
       
    75 // Structure used to define a self-contained variable data structure
       
    76 //
       
    77 typedef struct _NDIS_VAR_DATA_DESC {
       
    78     USHORT Length;		// # of octects of data
       
    79 
       
    80     USHORT MaximumLength;	// # of octects available
       
    81 
       
    82     LONG Offset;		// Offset of data relative to the descriptor
       
    83 
       
    84 } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC;
       
    85 
       
    86 //
       
    87 // Object Identifiers used by NdisRequest Query/Set Information
       
    88 //
       
    89 //
       
    90 // General Objects
       
    91 //
       
    92 #define OID_GEN_SUPPORTED_LIST			  		0x00010101
       
    93 #define OID_GEN_HARDWARE_STATUS			 		0x00010102
       
    94 #define OID_GEN_MEDIA_SUPPORTED			 		0x00010103
       
    95 #define OID_GEN_MEDIA_IN_USE					0x00010104
       
    96 #define OID_GEN_MAXIMUM_LOOKAHEAD		   		0x00010105
       
    97 #define OID_GEN_MAXIMUM_FRAME_SIZE		  		0x00010106
       
    98 #define OID_GEN_LINK_SPEED				  		0x00010107
       
    99 #define OID_GEN_TRANSMIT_BUFFER_SPACE	   		0x00010108
       
   100 #define OID_GEN_RECEIVE_BUFFER_SPACE			0x00010109
       
   101 #define OID_GEN_TRANSMIT_BLOCK_SIZE		 		0x0001010A
       
   102 #define OID_GEN_RECEIVE_BLOCK_SIZE		  		0x0001010B
       
   103 #define OID_GEN_VENDOR_ID				   		0x0001010C
       
   104 #define OID_GEN_VENDOR_DESCRIPTION		  		0x0001010D
       
   105 #define OID_GEN_CURRENT_PACKET_FILTER	   		0x0001010E
       
   106 #define OID_GEN_CURRENT_LOOKAHEAD		   		0x0001010F
       
   107 #define OID_GEN_DRIVER_VERSION			  		0x00010110
       
   108 #define OID_GEN_MAXIMUM_TOTAL_SIZE		  		0x00010111
       
   109 #define OID_GEN_PROTOCOL_OPTIONS				0x00010112
       
   110 #define OID_GEN_MAC_OPTIONS				 		0x00010113
       
   111 #define OID_GEN_MEDIA_CONNECT_STATUS			0x00010114
       
   112 #define OID_GEN_MAXIMUM_SEND_PACKETS			0x00010115
       
   113 #define OID_GEN_VENDOR_DRIVER_VERSION			0x00010116
       
   114 #define OID_GEN_XMIT_OK					 		0x00020101
       
   115 #define OID_GEN_RCV_OK					  		0x00020102
       
   116 #define OID_GEN_XMIT_ERROR				  		0x00020103
       
   117 #define OID_GEN_RCV_ERROR				   		0x00020104
       
   118 #define OID_GEN_RCV_NO_BUFFER			   		0x00020105
       
   119 #define OID_GEN_DIRECTED_BYTES_XMIT		 		0x00020201
       
   120 #define OID_GEN_DIRECTED_FRAMES_XMIT			0x00020202
       
   121 #define OID_GEN_MULTICAST_BYTES_XMIT			0x00020203
       
   122 #define OID_GEN_MULTICAST_FRAMES_XMIT	   		0x00020204
       
   123 #define OID_GEN_BROADCAST_BYTES_XMIT			0x00020205
       
   124 #define OID_GEN_BROADCAST_FRAMES_XMIT	   		0x00020206
       
   125 #define OID_GEN_DIRECTED_BYTES_RCV		  		0x00020207
       
   126 #define OID_GEN_DIRECTED_FRAMES_RCV		 		0x00020208
       
   127 #define OID_GEN_MULTICAST_BYTES_RCV		 		0x00020209
       
   128 #define OID_GEN_MULTICAST_FRAMES_RCV			0x0002020A
       
   129 #define OID_GEN_BROADCAST_BYTES_RCV		 		0x0002020B
       
   130 #define OID_GEN_BROADCAST_FRAMES_RCV			0x0002020C
       
   131 #define OID_GEN_RCV_CRC_ERROR			   		0x0002020D
       
   132 #define OID_GEN_TRANSMIT_QUEUE_LENGTH	   		0x0002020E
       
   133 #define OID_GEN_GET_TIME_CAPS					0x0002020F
       
   134 #define OID_GEN_GET_NETCARD_TIME				0x00020210
       
   135 //
       
   136 //      These are connection-oriented general OIDs.
       
   137 //      These replace the above OIDs for connection-oriented media.
       
   138 //
       
   139 #define OID_GEN_CO_SUPPORTED_LIST			  	0x00010101
       
   140 #define OID_GEN_CO_HARDWARE_STATUS			 	0x00010102
       
   141 #define OID_GEN_CO_MEDIA_SUPPORTED			 	0x00010103
       
   142 #define OID_GEN_CO_MEDIA_IN_USE					0x00010104
       
   143 #define OID_GEN_CO_LINK_SPEED				  	0x00010105
       
   144 #define OID_GEN_CO_VENDOR_ID				   	0x00010106
       
   145 #define OID_GEN_CO_VENDOR_DESCRIPTION		  	0x00010107
       
   146 #define OID_GEN_CO_DRIVER_VERSION			  	0x00010108
       
   147 #define OID_GEN_CO_PROTOCOL_OPTIONS				0x00010109
       
   148 #define OID_GEN_CO_MAC_OPTIONS				 	0x0001010A
       
   149 #define OID_GEN_CO_MEDIA_CONNECT_STATUS			0x0001010B
       
   150 #define OID_GEN_CO_VENDOR_DRIVER_VERSION		0x0001010C
       
   151 #define OID_GEN_CO_MINIMUM_LINK_SPEED			0x0001010D
       
   152 #define OID_GEN_CO_GET_TIME_CAPS				0x00010201
       
   153 #define OID_GEN_CO_GET_NETCARD_TIME				0x00010202
       
   154 //
       
   155 //      These are connection-oriented statistics OIDs.
       
   156 //
       
   157 #define	OID_GEN_CO_XMIT_PDUS_OK					0x00020101
       
   158 #define	OID_GEN_CO_RCV_PDUS_OK					0x00020102
       
   159 #define	OID_GEN_CO_XMIT_PDUS_ERROR				0x00020103
       
   160 #define	OID_GEN_CO_RCV_PDUS_ERROR				0x00020104
       
   161 #define	OID_GEN_CO_RCV_PDUS_NO_BUFFER			0x00020105
       
   162 #define	OID_GEN_CO_RCV_CRC_ERROR				0x00020201
       
   163 #define OID_GEN_CO_TRANSMIT_QUEUE_LENGTH		0x00020202
       
   164 #define	OID_GEN_CO_BYTES_XMIT					0x00020203
       
   165 #define OID_GEN_CO_BYTES_RCV					0x00020204
       
   166 #define	OID_GEN_CO_BYTES_XMIT_OUTSTANDING		0x00020205
       
   167 #define	OID_GEN_CO_NETCARD_LOAD					0x00020206
       
   168 //
       
   169 // These are objects for Connection-oriented media call-managers and are not
       
   170 // valid for ndis drivers. Under construction.
       
   171 //
       
   172 #define OID_CO_ADD_PVC							0xFF000001
       
   173 #define OID_CO_DELETE_PVC						0xFF000002
       
   174 #define OID_CO_GET_CALL_INFORMATION				0xFF000003
       
   175 #define OID_CO_ADD_ADDRESS						0xFF000004
       
   176 #define OID_CO_DELETE_ADDRESS					0xFF000005
       
   177 #define OID_CO_GET_ADDRESSES					0xFF000006
       
   178 #define OID_CO_ADDRESS_CHANGE					0xFF000007
       
   179 #define OID_CO_SIGNALING_ENABLED				0xFF000008
       
   180 #define OID_CO_SIGNALING_DISABLED				0xFF000009
       
   181 //
       
   182 // 802.3 Objects (Ethernet)
       
   183 //
       
   184 #define OID_802_3_PERMANENT_ADDRESS		 		0x01010101
       
   185 #define OID_802_3_CURRENT_ADDRESS		   		0x01010102
       
   186 #define OID_802_3_MULTICAST_LIST				0x01010103
       
   187 #define OID_802_3_MAXIMUM_LIST_SIZE		 		0x01010104
       
   188 #define OID_802_3_MAC_OPTIONS				 	0x01010105
       
   189 //
       
   190 //
       
   191 #define	NDIS_802_3_MAC_OPTION_PRIORITY			0x00000001
       
   192 #define OID_802_3_RCV_ERROR_ALIGNMENT	   		0x01020101
       
   193 #define OID_802_3_XMIT_ONE_COLLISION			0x01020102
       
   194 #define OID_802_3_XMIT_MORE_COLLISIONS	  		0x01020103
       
   195 #define OID_802_3_XMIT_DEFERRED			 		0x01020201
       
   196 #define OID_802_3_XMIT_MAX_COLLISIONS	   		0x01020202
       
   197 #define OID_802_3_RCV_OVERRUN			   		0x01020203
       
   198 #define OID_802_3_XMIT_UNDERRUN			 		0x01020204
       
   199 #define OID_802_3_XMIT_HEARTBEAT_FAILURE		0x01020205
       
   200 #define OID_802_3_XMIT_TIMES_CRS_LOST	   		0x01020206
       
   201 #define OID_802_3_XMIT_LATE_COLLISIONS	  		0x01020207
       
   202 //
       
   203 // 802.5 Objects (Token-Ring)
       
   204 //
       
   205 #define OID_802_5_PERMANENT_ADDRESS		 		0x02010101
       
   206 #define OID_802_5_CURRENT_ADDRESS		   		0x02010102
       
   207 #define OID_802_5_CURRENT_FUNCTIONAL			0x02010103
       
   208 #define OID_802_5_CURRENT_GROUP			 		0x02010104
       
   209 #define OID_802_5_LAST_OPEN_STATUS		  		0x02010105
       
   210 #define OID_802_5_CURRENT_RING_STATUS	   		0x02010106
       
   211 #define OID_802_5_CURRENT_RING_STATE			0x02010107
       
   212 #define OID_802_5_LINE_ERRORS			   		0x02020101
       
   213 #define OID_802_5_LOST_FRAMES			   		0x02020102
       
   214 #define OID_802_5_BURST_ERRORS			  		0x02020201
       
   215 #define OID_802_5_AC_ERRORS				 		0x02020202
       
   216 #define OID_802_5_ABORT_DELIMETERS		  		0x02020203
       
   217 #define OID_802_5_FRAME_COPIED_ERRORS	   		0x02020204
       
   218 #define OID_802_5_FREQUENCY_ERRORS		  		0x02020205
       
   219 #define OID_802_5_TOKEN_ERRORS			  		0x02020206
       
   220 #define OID_802_5_INTERNAL_ERRORS		   		0x02020207
       
   221 //
       
   222 // FDDI Objects
       
   223 //
       
   224 #define OID_FDDI_LONG_PERMANENT_ADDR			0x03010101
       
   225 #define OID_FDDI_LONG_CURRENT_ADDR		  		0x03010102
       
   226 #define OID_FDDI_LONG_MULTICAST_LIST			0x03010103
       
   227 #define OID_FDDI_LONG_MAX_LIST_SIZE		 		0x03010104
       
   228 #define OID_FDDI_SHORT_PERMANENT_ADDR	   		0x03010105
       
   229 #define OID_FDDI_SHORT_CURRENT_ADDR		 		0x03010106
       
   230 #define OID_FDDI_SHORT_MULTICAST_LIST	   		0x03010107
       
   231 #define OID_FDDI_SHORT_MAX_LIST_SIZE			0x03010108
       
   232 #define OID_FDDI_ATTACHMENT_TYPE				0x03020101
       
   233 #define OID_FDDI_UPSTREAM_NODE_LONG		 		0x03020102
       
   234 #define OID_FDDI_DOWNSTREAM_NODE_LONG	   		0x03020103
       
   235 #define OID_FDDI_FRAME_ERRORS			   		0x03020104
       
   236 #define OID_FDDI_FRAMES_LOST					0x03020105
       
   237 #define OID_FDDI_RING_MGT_STATE			 		0x03020106
       
   238 #define OID_FDDI_LCT_FAILURES			   		0x03020107
       
   239 #define OID_FDDI_LEM_REJECTS					0x03020108
       
   240 #define OID_FDDI_LCONNECTION_STATE		  		0x03020109
       
   241 #define OID_FDDI_SMT_STATION_ID			 		0x03030201
       
   242 #define OID_FDDI_SMT_OP_VERSION_ID		  		0x03030202
       
   243 #define OID_FDDI_SMT_HI_VERSION_ID		  		0x03030203
       
   244 #define OID_FDDI_SMT_LO_VERSION_ID		  		0x03030204
       
   245 #define OID_FDDI_SMT_MANUFACTURER_DATA	  		0x03030205
       
   246 #define OID_FDDI_SMT_USER_DATA			  		0x03030206
       
   247 #define OID_FDDI_SMT_MIB_VERSION_ID		 		0x03030207
       
   248 #define OID_FDDI_SMT_MAC_CT				 		0x03030208
       
   249 #define OID_FDDI_SMT_NON_MASTER_CT		  		0x03030209
       
   250 #define OID_FDDI_SMT_MASTER_CT			  		0x0303020A
       
   251 #define OID_FDDI_SMT_AVAILABLE_PATHS			0x0303020B
       
   252 #define OID_FDDI_SMT_CONFIG_CAPABILITIES		0x0303020C
       
   253 #define OID_FDDI_SMT_CONFIG_POLICY		  		0x0303020D
       
   254 #define OID_FDDI_SMT_CONNECTION_POLICY	  		0x0303020E
       
   255 #define OID_FDDI_SMT_T_NOTIFY			   		0x0303020F
       
   256 #define OID_FDDI_SMT_STAT_RPT_POLICY			0x03030210
       
   257 #define OID_FDDI_SMT_TRACE_MAX_EXPIRATION   	0x03030211
       
   258 #define OID_FDDI_SMT_PORT_INDEXES		   		0x03030212
       
   259 #define OID_FDDI_SMT_MAC_INDEXES				0x03030213
       
   260 #define OID_FDDI_SMT_BYPASS_PRESENT		 		0x03030214
       
   261 #define OID_FDDI_SMT_ECM_STATE			  		0x03030215
       
   262 #define OID_FDDI_SMT_CF_STATE			   		0x03030216
       
   263 #define OID_FDDI_SMT_HOLD_STATE			 		0x03030217
       
   264 #define OID_FDDI_SMT_REMOTE_DISCONNECT_FLAG 	0x03030218
       
   265 #define OID_FDDI_SMT_STATION_STATUS		 		0x03030219
       
   266 #define OID_FDDI_SMT_PEER_WRAP_FLAG		 		0x0303021A
       
   267 #define OID_FDDI_SMT_MSG_TIME_STAMP		 		0x0303021B
       
   268 #define OID_FDDI_SMT_TRANSITION_TIME_STAMP  	0x0303021C
       
   269 #define OID_FDDI_SMT_SET_COUNT			  		0x0303021D
       
   270 #define OID_FDDI_SMT_LAST_SET_STATION_ID		0x0303021E
       
   271 #define OID_FDDI_MAC_FRAME_STATUS_FUNCTIONS 	0x0303021F
       
   272 #define OID_FDDI_MAC_BRIDGE_FUNCTIONS	   		0x03030220
       
   273 #define OID_FDDI_MAC_T_MAX_CAPABILITY	   		0x03030221
       
   274 #define OID_FDDI_MAC_TVX_CAPABILITY		 		0x03030222
       
   275 #define OID_FDDI_MAC_AVAILABLE_PATHS			0x03030223
       
   276 #define OID_FDDI_MAC_CURRENT_PATH		   		0x03030224
       
   277 #define OID_FDDI_MAC_UPSTREAM_NBR		   		0x03030225
       
   278 #define OID_FDDI_MAC_DOWNSTREAM_NBR		 		0x03030226
       
   279 #define OID_FDDI_MAC_OLD_UPSTREAM_NBR	   		0x03030227
       
   280 #define OID_FDDI_MAC_OLD_DOWNSTREAM_NBR	 		0x03030228
       
   281 #define OID_FDDI_MAC_DUP_ADDRESS_TEST	   		0x03030229
       
   282 #define OID_FDDI_MAC_REQUESTED_PATHS			0x0303022A
       
   283 #define OID_FDDI_MAC_DOWNSTREAM_PORT_TYPE   	0x0303022B
       
   284 #define OID_FDDI_MAC_INDEX				  		0x0303022C
       
   285 #define OID_FDDI_MAC_SMT_ADDRESS				0x0303022D
       
   286 #define OID_FDDI_MAC_LONG_GRP_ADDRESS	   		0x0303022E
       
   287 #define OID_FDDI_MAC_SHORT_GRP_ADDRESS	  		0x0303022F
       
   288 #define OID_FDDI_MAC_T_REQ				  		0x03030230
       
   289 #define OID_FDDI_MAC_T_NEG				  		0x03030231
       
   290 #define OID_FDDI_MAC_T_MAX				  		0x03030232
       
   291 #define OID_FDDI_MAC_TVX_VALUE			  		0x03030233
       
   292 #define OID_FDDI_MAC_T_PRI0				 		0x03030234
       
   293 #define OID_FDDI_MAC_T_PRI1				 		0x03030235
       
   294 #define OID_FDDI_MAC_T_PRI2				 		0x03030236
       
   295 #define OID_FDDI_MAC_T_PRI3				 		0x03030237
       
   296 #define OID_FDDI_MAC_T_PRI4				 		0x03030238
       
   297 #define OID_FDDI_MAC_T_PRI5				 		0x03030239
       
   298 #define OID_FDDI_MAC_T_PRI6				 		0x0303023A
       
   299 #define OID_FDDI_MAC_FRAME_CT			   		0x0303023B
       
   300 #define OID_FDDI_MAC_COPIED_CT			  		0x0303023C
       
   301 #define OID_FDDI_MAC_TRANSMIT_CT				0x0303023D
       
   302 #define OID_FDDI_MAC_TOKEN_CT			   		0x0303023E
       
   303 #define OID_FDDI_MAC_ERROR_CT			   		0x0303023F
       
   304 #define OID_FDDI_MAC_LOST_CT					0x03030240
       
   305 #define OID_FDDI_MAC_TVX_EXPIRED_CT		 		0x03030241
       
   306 #define OID_FDDI_MAC_NOT_COPIED_CT		  		0x03030242
       
   307 #define OID_FDDI_MAC_LATE_CT					0x03030243
       
   308 #define OID_FDDI_MAC_RING_OP_CT			 		0x03030244
       
   309 #define OID_FDDI_MAC_FRAME_ERROR_THRESHOLD  	0x03030245
       
   310 #define OID_FDDI_MAC_FRAME_ERROR_RATIO	  		0x03030246
       
   311 #define OID_FDDI_MAC_NOT_COPIED_THRESHOLD   	0x03030247
       
   312 #define OID_FDDI_MAC_NOT_COPIED_RATIO	   		0x03030248
       
   313 #define OID_FDDI_MAC_RMT_STATE			  		0x03030249
       
   314 #define OID_FDDI_MAC_DA_FLAG					0x0303024A
       
   315 #define OID_FDDI_MAC_UNDA_FLAG			  		0x0303024B
       
   316 #define OID_FDDI_MAC_FRAME_ERROR_FLAG	   		0x0303024C
       
   317 #define OID_FDDI_MAC_NOT_COPIED_FLAG			0x0303024D
       
   318 #define OID_FDDI_MAC_MA_UNITDATA_AVAILABLE  	0x0303024E
       
   319 #define OID_FDDI_MAC_HARDWARE_PRESENT	   		0x0303024F
       
   320 #define OID_FDDI_MAC_MA_UNITDATA_ENABLE	 		0x03030250
       
   321 #define OID_FDDI_PATH_INDEX				 		0x03030251
       
   322 #define OID_FDDI_PATH_RING_LATENCY		  		0x03030252
       
   323 #define OID_FDDI_PATH_TRACE_STATUS		  		0x03030253
       
   324 #define OID_FDDI_PATH_SBA_PAYLOAD		   		0x03030254
       
   325 #define OID_FDDI_PATH_SBA_OVERHEAD		  		0x03030255
       
   326 #define OID_FDDI_PATH_CONFIGURATION		 		0x03030256
       
   327 #define OID_FDDI_PATH_T_R_MODE			  		0x03030257
       
   328 #define OID_FDDI_PATH_SBA_AVAILABLE		 		0x03030258
       
   329 #define OID_FDDI_PATH_TVX_LOWER_BOUND	   		0x03030259
       
   330 #define OID_FDDI_PATH_T_MAX_LOWER_BOUND	 		0x0303025A
       
   331 #define OID_FDDI_PATH_MAX_T_REQ			 		0x0303025B
       
   332 #define OID_FDDI_PORT_MY_TYPE			   		0x0303025C
       
   333 #define OID_FDDI_PORT_NEIGHBOR_TYPE		 		0x0303025D
       
   334 #define OID_FDDI_PORT_CONNECTION_POLICIES   	0x0303025E
       
   335 #define OID_FDDI_PORT_MAC_INDICATED		 		0x0303025F
       
   336 #define OID_FDDI_PORT_CURRENT_PATH		  		0x03030260
       
   337 #define OID_FDDI_PORT_REQUESTED_PATHS	   		0x03030261
       
   338 #define OID_FDDI_PORT_MAC_PLACEMENT		 		0x03030262
       
   339 #define OID_FDDI_PORT_AVAILABLE_PATHS	   		0x03030263
       
   340 #define OID_FDDI_PORT_MAC_LOOP_TIME		 		0x03030264
       
   341 #define OID_FDDI_PORT_PMD_CLASS			 		0x03030265
       
   342 #define OID_FDDI_PORT_CONNECTION_CAPABILITIES	0x03030266
       
   343 #define OID_FDDI_PORT_INDEX				 		0x03030267
       
   344 #define OID_FDDI_PORT_MAINT_LS			  		0x03030268
       
   345 #define OID_FDDI_PORT_BS_FLAG			   		0x03030269
       
   346 #define OID_FDDI_PORT_PC_LS				 		0x0303026A
       
   347 #define OID_FDDI_PORT_EB_ERROR_CT		   		0x0303026B
       
   348 #define OID_FDDI_PORT_LCT_FAIL_CT		   		0x0303026C
       
   349 #define OID_FDDI_PORT_LER_ESTIMATE		  		0x0303026D
       
   350 #define OID_FDDI_PORT_LEM_REJECT_CT		 		0x0303026E
       
   351 #define OID_FDDI_PORT_LEM_CT					0x0303026F
       
   352 #define OID_FDDI_PORT_LER_CUTOFF				0x03030270
       
   353 #define OID_FDDI_PORT_LER_ALARM			 		0x03030271
       
   354 #define OID_FDDI_PORT_CONNNECT_STATE			0x03030272
       
   355 #define OID_FDDI_PORT_PCM_STATE			 		0x03030273
       
   356 #define OID_FDDI_PORT_PC_WITHHOLD		   		0x03030274
       
   357 #define OID_FDDI_PORT_LER_FLAG			  		0x03030275
       
   358 #define OID_FDDI_PORT_HARDWARE_PRESENT	  		0x03030276
       
   359 #define OID_FDDI_SMT_STATION_ACTION		 		0x03030277
       
   360 #define OID_FDDI_PORT_ACTION					0x03030278
       
   361 #define OID_FDDI_IF_DESCR				   		0x03030279
       
   362 #define OID_FDDI_IF_TYPE						0x0303027A
       
   363 #define OID_FDDI_IF_MTU					 		0x0303027B
       
   364 #define OID_FDDI_IF_SPEED				   		0x0303027C
       
   365 #define OID_FDDI_IF_PHYS_ADDRESS				0x0303027D
       
   366 #define OID_FDDI_IF_ADMIN_STATUS				0x0303027E
       
   367 #define OID_FDDI_IF_OPER_STATUS			 		0x0303027F
       
   368 #define OID_FDDI_IF_LAST_CHANGE			 		0x03030280
       
   369 #define OID_FDDI_IF_IN_OCTETS			   		0x03030281
       
   370 #define OID_FDDI_IF_IN_UCAST_PKTS		   		0x03030282
       
   371 #define OID_FDDI_IF_IN_NUCAST_PKTS		  		0x03030283
       
   372 #define OID_FDDI_IF_IN_DISCARDS			 		0x03030284
       
   373 #define OID_FDDI_IF_IN_ERRORS			   		0x03030285
       
   374 #define OID_FDDI_IF_IN_UNKNOWN_PROTOS	   		0x03030286
       
   375 #define OID_FDDI_IF_OUT_OCTETS			  		0x03030287
       
   376 #define OID_FDDI_IF_OUT_UCAST_PKTS		  		0x03030288
       
   377 #define OID_FDDI_IF_OUT_NUCAST_PKTS		 		0x03030289
       
   378 #define OID_FDDI_IF_OUT_DISCARDS				0x0303028A
       
   379 #define OID_FDDI_IF_OUT_ERRORS			  		0x0303028B
       
   380 #define OID_FDDI_IF_OUT_QLEN					0x0303028C
       
   381 #define OID_FDDI_IF_SPECIFIC					0x0303028D
       
   382 //
       
   383 // WAN objects
       
   384 //
       
   385 #define OID_WAN_PERMANENT_ADDRESS		   		0x04010101
       
   386 #define OID_WAN_CURRENT_ADDRESS			 		0x04010102
       
   387 #define OID_WAN_QUALITY_OF_SERVICE		  		0x04010103
       
   388 #define OID_WAN_PROTOCOL_TYPE			   		0x04010104
       
   389 #define OID_WAN_MEDIUM_SUBTYPE			  		0x04010105
       
   390 #define OID_WAN_HEADER_FORMAT			   		0x04010106
       
   391 #define OID_WAN_GET_INFO						0x04010107
       
   392 #define OID_WAN_SET_LINK_INFO			   		0x04010108
       
   393 #define OID_WAN_GET_LINK_INFO			   		0x04010109
       
   394 #define OID_WAN_LINE_COUNT				  		0x0401010A
       
   395 #define OID_WAN_GET_BRIDGE_INFO			 		0x0401020A
       
   396 #define OID_WAN_SET_BRIDGE_INFO			 		0x0401020B
       
   397 #define OID_WAN_GET_COMP_INFO			   		0x0401020C
       
   398 #define OID_WAN_SET_COMP_INFO			   		0x0401020D
       
   399 #define OID_WAN_GET_STATS_INFO			  		0x0401020E
       
   400 //
       
   401 // LocalTalk objects
       
   402 //
       
   403 #define OID_LTALK_CURRENT_NODE_ID		   		0x05010102
       
   404 #define OID_LTALK_IN_BROADCASTS			 		0x05020101
       
   405 #define OID_LTALK_IN_LENGTH_ERRORS		  		0x05020102
       
   406 #define OID_LTALK_OUT_NO_HANDLERS		   		0x05020201
       
   407 #define OID_LTALK_COLLISIONS					0x05020202
       
   408 #define OID_LTALK_DEFERS						0x05020203
       
   409 #define OID_LTALK_NO_DATA_ERRORS				0x05020204
       
   410 #define OID_LTALK_RANDOM_CTS_ERRORS		 		0x05020205
       
   411 #define OID_LTALK_FCS_ERRORS					0x05020206
       
   412 //
       
   413 // Arcnet objects
       
   414 //
       
   415 #define OID_ARCNET_PERMANENT_ADDRESS			0x06010101
       
   416 #define OID_ARCNET_CURRENT_ADDRESS		  		0x06010102
       
   417 #define OID_ARCNET_RECONFIGURATIONS		 		0x06020201
       
   418 //
       
   419 // TAPI objects
       
   420 //
       
   421 #define OID_TAPI_ACCEPT					 		0x07030101
       
   422 #define OID_TAPI_ANSWER					 		0x07030102
       
   423 #define OID_TAPI_CLOSE					  		0x07030103
       
   424 #define OID_TAPI_CLOSE_CALL				 		0x07030104
       
   425 #define OID_TAPI_CONDITIONAL_MEDIA_DETECTION	0x07030105
       
   426 #define OID_TAPI_CONFIG_DIALOG			  		0x07030106
       
   427 #define OID_TAPI_DEV_SPECIFIC			   		0x07030107
       
   428 #define OID_TAPI_DIAL					   		0x07030108
       
   429 #define OID_TAPI_DROP					   		0x07030109
       
   430 #define OID_TAPI_GET_ADDRESS_CAPS		   		0x0703010A
       
   431 #define OID_TAPI_GET_ADDRESS_ID			 		0x0703010B
       
   432 #define OID_TAPI_GET_ADDRESS_STATUS		 		0x0703010C
       
   433 #define OID_TAPI_GET_CALL_ADDRESS_ID			0x0703010D
       
   434 #define OID_TAPI_GET_CALL_INFO			  		0x0703010E
       
   435 #define OID_TAPI_GET_CALL_STATUS				0x0703010F
       
   436 #define OID_TAPI_GET_DEV_CAPS			   		0x07030110
       
   437 #define OID_TAPI_GET_DEV_CONFIG			 		0x07030111
       
   438 #define OID_TAPI_GET_EXTENSION_ID		   		0x07030112
       
   439 #define OID_TAPI_GET_ID					 		0x07030113
       
   440 #define OID_TAPI_GET_LINE_DEV_STATUS			0x07030114
       
   441 #define OID_TAPI_MAKE_CALL				  		0x07030115
       
   442 #define OID_TAPI_NEGOTIATE_EXT_VERSION	  		0x07030116
       
   443 #define OID_TAPI_OPEN					   		0x07030117
       
   444 #define OID_TAPI_PROVIDER_INITIALIZE			0x07030118
       
   445 #define OID_TAPI_PROVIDER_SHUTDOWN		  		0x07030119
       
   446 #define OID_TAPI_SECURE_CALL					0x0703011A
       
   447 #define OID_TAPI_SELECT_EXT_VERSION		 		0x0703011B
       
   448 #define OID_TAPI_SEND_USER_USER_INFO			0x0703011C
       
   449 #define OID_TAPI_SET_APP_SPECIFIC		   		0x0703011D
       
   450 #define OID_TAPI_SET_CALL_PARAMS				0x0703011E
       
   451 #define OID_TAPI_SET_DEFAULT_MEDIA_DETECTION	0x0703011F
       
   452 #define OID_TAPI_SET_DEV_CONFIG			 		0x07030120
       
   453 #define OID_TAPI_SET_MEDIA_MODE			 		0x07030121
       
   454 #define OID_TAPI_SET_STATUS_MESSAGES			0x07030122
       
   455 //
       
   456 // ATM Connection Oriented Ndis
       
   457 //
       
   458 #define OID_ATM_SUPPORTED_VC_RATES				0x08010101
       
   459 #define OID_ATM_SUPPORTED_SERVICE_CATEGORY		0x08010102
       
   460 #define OID_ATM_SUPPORTED_AAL_TYPES				0x08010103
       
   461 #define OID_ATM_HW_CURRENT_ADDRESS				0x08010104
       
   462 #define OID_ATM_MAX_ACTIVE_VCS					0x08010105
       
   463 #define OID_ATM_MAX_ACTIVE_VCI_BITS				0x08010106
       
   464 #define OID_ATM_MAX_ACTIVE_VPI_BITS				0x08010107
       
   465 #define OID_ATM_MAX_AAL0_PACKET_SIZE			0x08010108
       
   466 #define OID_ATM_MAX_AAL1_PACKET_SIZE			0x08010109
       
   467 #define OID_ATM_MAX_AAL34_PACKET_SIZE			0x0801010A
       
   468 #define OID_ATM_MAX_AAL5_PACKET_SIZE			0x0801010B
       
   469 #define OID_ATM_SIGNALING_VPIVCI				0x08010201
       
   470 #define OID_ATM_ASSIGNED_VPI					0x08010202
       
   471 #define OID_ATM_ACQUIRE_ACCESS_NET_RESOURCES	0x08010203
       
   472 #define OID_ATM_RELEASE_ACCESS_NET_RESOURCES	0x08010204
       
   473 #define OID_ATM_ILMI_VPIVCI						0x08010205
       
   474 #define OID_ATM_DIGITAL_BROADCAST_VPIVCI		0x08010206
       
   475 #define	OID_ATM_GET_NEAREST_FLOW				0x08010207
       
   476 #define OID_ATM_ALIGNMENT_REQUIRED				0x08010208
       
   477 //
       
   478 //      ATM specific statistics OIDs.
       
   479 //
       
   480 #define	OID_ATM_RCV_CELLS_OK					0x08020101
       
   481 #define	OID_ATM_XMIT_CELLS_OK					0x08020102
       
   482 #define	OID_ATM_RCV_CELLS_DROPPED				0x08020103
       
   483 #define	OID_ATM_RCV_INVALID_VPI_VCI				0x08020201
       
   484 #define	OID_ATM_CELLS_HEC_ERROR					0x08020202
       
   485 #define	OID_ATM_RCV_REASSEMBLY_ERROR			0x08020203
       
   486 //
       
   487 // PCCA (Wireless) object
       
   488 //
       
   489 //
       
   490 // All WirelessWAN devices must support the following OIDs
       
   491 //
       
   492 #define OID_WW_GEN_NETWORK_TYPES_SUPPORTED		0x09010101
       
   493 #define OID_WW_GEN_NETWORK_TYPE_IN_USE			0x09010102
       
   494 #define OID_WW_GEN_HEADER_FORMATS_SUPPORTED		0x09010103
       
   495 #define OID_WW_GEN_HEADER_FORMAT_IN_USE			0x09010104
       
   496 #define OID_WW_GEN_INDICATION_REQUEST			0x09010105
       
   497 #define OID_WW_GEN_DEVICE_INFO					0x09010106
       
   498 #define OID_WW_GEN_OPERATION_MODE				0x09010107
       
   499 #define OID_WW_GEN_LOCK_STATUS					0x09010108
       
   500 #define OID_WW_GEN_DISABLE_TRANSMITTER			0x09010109
       
   501 #define OID_WW_GEN_NETWORK_ID					0x0901010A
       
   502 #define OID_WW_GEN_PERMANENT_ADDRESS			0x0901010B
       
   503 #define OID_WW_GEN_CURRENT_ADDRESS				0x0901010C
       
   504 #define OID_WW_GEN_SUSPEND_DRIVER				0x0901010D
       
   505 #define OID_WW_GEN_BASESTATION_ID				0x0901010E
       
   506 #define OID_WW_GEN_CHANNEL_ID					0x0901010F
       
   507 #define OID_WW_GEN_ENCRYPTION_SUPPORTED			0x09010110
       
   508 #define OID_WW_GEN_ENCRYPTION_IN_USE			0x09010111
       
   509 #define OID_WW_GEN_ENCRYPTION_STATE				0x09010112
       
   510 #define OID_WW_GEN_CHANNEL_QUALITY				0x09010113
       
   511 #define OID_WW_GEN_REGISTRATION_STATUS			0x09010114
       
   512 #define OID_WW_GEN_RADIO_LINK_SPEED				0x09010115
       
   513 #define OID_WW_GEN_LATENCY						0x09010116
       
   514 #define OID_WW_GEN_BATTERY_LEVEL				0x09010117
       
   515 #define OID_WW_GEN_EXTERNAL_POWER				0x09010118
       
   516 //
       
   517 // Network Dependent OIDs - Mobitex:
       
   518 //
       
   519 #define OID_WW_MBX_SUBADDR						0x09050101
       
   520 // OID 0x09050102 is reserved and may not be used
       
   521 #define OID_WW_MBX_FLEXLIST						0x09050103
       
   522 #define OID_WW_MBX_GROUPLIST					0x09050104
       
   523 #define OID_WW_MBX_TRAFFIC_AREA					0x09050105
       
   524 #define OID_WW_MBX_LIVE_DIE						0x09050106
       
   525 #define OID_WW_MBX_TEMP_DEFAULTLIST				0x09050107
       
   526 //
       
   527 // Network Dependent OIDs - Pinpoint:
       
   528 //
       
   529 #define OID_WW_PIN_LOC_AUTHORIZE				0x09090101
       
   530 #define OID_WW_PIN_LAST_LOCATION				0x09090102
       
   531 #define OID_WW_PIN_LOC_FIX						0x09090103
       
   532 //
       
   533 // Network Dependent - CDPD:
       
   534 //
       
   535 #define OID_WW_CDPD_SPNI						0x090D0101
       
   536 #define OID_WW_CDPD_WASI						0x090D0102
       
   537 #define OID_WW_CDPD_AREA_COLOR					0x090D0103
       
   538 #define OID_WW_CDPD_TX_POWER_LEVEL				0x090D0104
       
   539 #define OID_WW_CDPD_EID							0x090D0105
       
   540 #define OID_WW_CDPD_HEADER_COMPRESSION			0x090D0106
       
   541 #define OID_WW_CDPD_DATA_COMPRESSION			0x090D0107
       
   542 #define OID_WW_CDPD_CHANNEL_SELECT				0x090D0108
       
   543 #define OID_WW_CDPD_CHANNEL_STATE				0x090D0109
       
   544 #define OID_WW_CDPD_NEI							0x090D010A
       
   545 #define OID_WW_CDPD_NEI_STATE					0x090D010B
       
   546 #define OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER	0x090D010C
       
   547 #define OID_WW_CDPD_SLEEP_MODE					0x090D010D
       
   548 #define OID_WW_CDPD_CIRCUIT_SWITCHED			0x090D010E
       
   549 #define	OID_WW_CDPD_TEI							0x090D010F
       
   550 #define	OID_WW_CDPD_RSSI						0x090D0110
       
   551 //
       
   552 // Network Dependent - Ardis:
       
   553 //
       
   554 #define OID_WW_ARD_SNDCP						0x09110101
       
   555 #define OID_WW_ARD_TMLY_MSG						0x09110102
       
   556 #define OID_WW_ARD_DATAGRAM						0x09110103
       
   557 //
       
   558 // Network Dependent - DataTac:
       
   559 //
       
   560 #define OID_WW_TAC_COMPRESSION					0x09150101
       
   561 #define OID_WW_TAC_SET_CONFIG					0x09150102
       
   562 #define OID_WW_TAC_GET_STATUS					0x09150103
       
   563 #define OID_WW_TAC_USER_HEADER					0x09150104
       
   564 //
       
   565 // Network Dependent - Metricom:
       
   566 //
       
   567 #define OID_WW_MET_FUNCTION						0x09190101
       
   568 //
       
   569 // IRDA objects
       
   570 //
       
   571 #define OID_IRDA_RECEIVING						0x0A010100
       
   572 #define OID_IRDA_TURNAROUND_TIME				0x0A010101
       
   573 #define OID_IRDA_SUPPORTED_SPEEDS				0x0A010102
       
   574 #define OID_IRDA_LINK_SPEED						0x0A010103
       
   575 #define OID_IRDA_MEDIA_BUSY						0x0A010104
       
   576 #define OID_IRDA_EXTRA_RCV_BOFS					0x0A010200
       
   577 #define OID_IRDA_RATE_SNIFF						0x0A010201
       
   578 #define OID_IRDA_UNICAST_LIST					0x0A010202
       
   579 #define OID_IRDA_MAX_UNICAST_LIST_SIZE			0x0A010203
       
   580 #define OID_IRDA_MAX_RECEIVE_WINDOW_SIZE		0x0A010204
       
   581 #define OID_IRDA_MAX_SEND_WINDOW_SIZE			0x0A010205
       
   582 //
       
   583 // Medium the Ndis Driver is running on (OID_GEN_MEDIA_SUPPORTED/
       
   584 // OID_GEN_MEDIA_IN_USE).
       
   585 //
       
   586 typedef enum _NDIS_MEDIUM {
       
   587     NdisMedium802_3,
       
   588     NdisMedium802_5,
       
   589     NdisMediumFddi,
       
   590     NdisMediumWan,
       
   591     NdisMediumLocalTalk,
       
   592     NdisMediumDix,		// defined for convenience, not a real medium
       
   593      NdisMediumArcnetRaw,
       
   594     NdisMediumArcnet878_2,
       
   595     NdisMediumAtm,
       
   596     NdisMediumWirelessWan,
       
   597     NdisMediumIrda,
       
   598     NdisMediumMax		// Not a real medium, defined as an upper-bound
       
   599 } NDIS_MEDIUM, *PNDIS_MEDIUM;
       
   600 
       
   601 //
       
   602 // Hardware status codes (OID_GEN_HARDWARE_STATUS).
       
   603 //
       
   604 typedef enum _NDIS_HARDWARE_STATUS {
       
   605     NdisHardwareStatusReady,
       
   606     NdisHardwareStatusInitializing,
       
   607     NdisHardwareStatusReset,
       
   608     NdisHardwareStatusClosing,
       
   609     NdisHardwareStatusNotReady
       
   610 } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS;
       
   611 
       
   612 //
       
   613 // this is the type passed in the OID_GEN_GET_TIME_CAPS request
       
   614 //
       
   615 typedef struct _GEN_GET_TIME_CAPS {
       
   616     ULONG Flags;		// Bits defined below
       
   617 
       
   618     ULONG ClockPrecision;
       
   619 } GEN_GET_TIME_CAPS, *PGEN_GET_TIME_CAPS;
       
   620 
       
   621 #define	READABLE_LOCAL_CLOCK					0x000000001
       
   622 #define	CLOCK_NETWORK_DERIVED					0x000000002
       
   623 #define	CLOCK_PRECISION							0x000000004
       
   624 #define	RECEIVE_TIME_INDICATION_CAPABLE			0x000000008
       
   625 #define	TIMED_SEND_CAPABLE						0x000000010
       
   626 #define	TIME_STAMP_CAPABLE						0x000000020
       
   627 //
       
   628 //
       
   629 // this is the type passed in the OID_GEN_GET_NETCARD_TIME request
       
   630 //
       
   631 typedef struct _GEN_GET_NETCARD_TIME {
       
   632     ULONG ReadTime;
       
   633 } GEN_GET_NETCARD_TIME, *PGEN_GET_NETCARD_TIME;
       
   634 
       
   635 //
       
   636 // Defines the attachment types for FDDI (OID_FDDI_ATTACHMENT_TYPE).
       
   637 //
       
   638 typedef enum _NDIS_FDDI_ATTACHMENT_TYPE {
       
   639     NdisFddiTypeIsolated = 1,
       
   640     NdisFddiTypeLocalA,
       
   641     NdisFddiTypeLocalB,
       
   642     NdisFddiTypeLocalAB,
       
   643     NdisFddiTypeLocalS,
       
   644     NdisFddiTypeWrapA,
       
   645     NdisFddiTypeWrapB,
       
   646     NdisFddiTypeWrapAB,
       
   647     NdisFddiTypeWrapS,
       
   648     NdisFddiTypeCWrapA,
       
   649     NdisFddiTypeCWrapB,
       
   650     NdisFddiTypeCWrapS,
       
   651     NdisFddiTypeThrough
       
   652 } NDIS_FDDI_ATTACHMENT_TYPE, *PNDIS_FDDI_ATTACHMENT_TYPE;
       
   653 
       
   654 //
       
   655 // Defines the ring management states for FDDI (OID_FDDI_RING_MGT_STATE).
       
   656 //
       
   657 typedef enum _NDIS_FDDI_RING_MGT_STATE {
       
   658     NdisFddiRingIsolated = 1,
       
   659     NdisFddiRingNonOperational,
       
   660     NdisFddiRingOperational,
       
   661     NdisFddiRingDetect,
       
   662     NdisFddiRingNonOperationalDup,
       
   663     NdisFddiRingOperationalDup,
       
   664     NdisFddiRingDirected,
       
   665     NdisFddiRingTrace
       
   666 } NDIS_FDDI_RING_MGT_STATE, *PNDIS_FDDI_RING_MGT_STATE;
       
   667 
       
   668 //
       
   669 // Defines the Lconnection state for FDDI (OID_FDDI_LCONNECTION_STATE).
       
   670 //
       
   671 typedef enum _NDIS_FDDI_LCONNECTION_STATE {
       
   672     NdisFddiStateOff = 1,
       
   673     NdisFddiStateBreak,
       
   674     NdisFddiStateTrace,
       
   675     NdisFddiStateConnect,
       
   676     NdisFddiStateNext,
       
   677     NdisFddiStateSignal,
       
   678     NdisFddiStateJoin,
       
   679     NdisFddiStateVerify,
       
   680     NdisFddiStateActive,
       
   681     NdisFddiStateMaintenance
       
   682 } NDIS_FDDI_LCONNECTION_STATE, *PNDIS_FDDI_LCONNECTION_STATE;
       
   683 
       
   684 //
       
   685 // Defines the medium subtypes for WAN medium (OID_WAN_MEDIUM_SUBTYPE).
       
   686 //
       
   687 typedef enum _NDIS_WAN_MEDIUM_SUBTYPE {
       
   688     NdisWanMediumHub,
       
   689     NdisWanMediumX_25,
       
   690     NdisWanMediumIsdn,
       
   691     NdisWanMediumSerial,
       
   692     NdisWanMediumFrameRelay,
       
   693     NdisWanMediumAtm,
       
   694     NdisWanMediumSonet,
       
   695     NdisWanMediumSW56K
       
   696 } NDIS_WAN_MEDIUM_SUBTYPE, *PNDIS_WAN_MEDIUM_SUBTYPE;
       
   697 
       
   698 //
       
   699 // Defines the header format for WAN medium (OID_WAN_HEADER_FORMAT).
       
   700 //
       
   701 typedef enum _NDIS_WAN_HEADER_FORMAT {
       
   702     NdisWanHeaderNative,	// src/dest based on subtype, followed by NLPID
       
   703      NdisWanHeaderEthernet	// emulation of ethernet header
       
   704 } NDIS_WAN_HEADER_FORMAT, *PNDIS_WAN_HEADER_FORMAT;
       
   705 
       
   706 //
       
   707 // Defines the line quality on a WAN line (OID_WAN_QUALITY_OF_SERVICE).
       
   708 //
       
   709 typedef enum _NDIS_WAN_QUALITY {
       
   710     NdisWanRaw,
       
   711     NdisWanErrorControl,
       
   712     NdisWanReliable
       
   713 } NDIS_WAN_QUALITY, *PNDIS_WAN_QUALITY;
       
   714 
       
   715 //
       
   716 // Defines the state of a token-ring adapter (OID_802_5_CURRENT_RING_STATE).
       
   717 //
       
   718 typedef enum _NDIS_802_5_RING_STATE {
       
   719     NdisRingStateOpened = 1,
       
   720     NdisRingStateClosed,
       
   721     NdisRingStateOpening,
       
   722     NdisRingStateClosing,
       
   723     NdisRingStateOpenFailure,
       
   724     NdisRingStateRingFailure
       
   725 } NDIS_802_5_RING_STATE, *PNDIS_802_5_RING_STATE;
       
   726 
       
   727 //
       
   728 // Defines the state of the LAN media
       
   729 //
       
   730 typedef enum _NDIS_MEDIA_STATE {
       
   731     NdisMediaStateConnected,
       
   732     NdisMediaStateDisconnected
       
   733 } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;
       
   734 
       
   735 //
       
   736 // The following is set on a per-packet basis as OOB data with NdisClass802_3Priority
       
   737 //
       
   738 typedef ULONG Priority_802_3;	// 0-7 priority levels
       
   739 //
       
   740 //      The following structure is used to query OID_GEN_CO_LINK_SPEED and
       
   741 //      OID_GEN_CO_MINIMUM_LINK_SPEED.  The first OID will return the current
       
   742 //      link speed of the adapter.  The second will return the minimum link speed
       
   743 //      the adapter is capable of.
       
   744 //
       
   745 
       
   746 typedef struct _NDIS_CO_LINK_SPEED {
       
   747     ULONG Outbound;
       
   748     ULONG Inbound;
       
   749 } NDIS_CO_LINK_SPEED,
       
   750 
       
   751 *PNDIS_CO_LINK_SPEED;
       
   752 //
       
   753 // Ndis Packet Filter Bits (OID_GEN_CURRENT_PACKET_FILTER).
       
   754 //
       
   755 #define NDIS_PACKET_TYPE_DIRECTED				0x0001
       
   756 #define NDIS_PACKET_TYPE_MULTICAST				0x0002
       
   757 #define NDIS_PACKET_TYPE_ALL_MULTICAST			0x0004
       
   758 #define NDIS_PACKET_TYPE_BROADCAST				0x0008
       
   759 #define NDIS_PACKET_TYPE_SOURCE_ROUTING			0x0010
       
   760 #define NDIS_PACKET_TYPE_PROMISCUOUS			0x0020
       
   761 #define NDIS_PACKET_TYPE_SMT					0x0040
       
   762 #define NDIS_PACKET_TYPE_ALL_LOCAL				0x0080
       
   763 #define NDIS_PACKET_TYPE_MAC_FRAME				0x8000
       
   764 #define NDIS_PACKET_TYPE_FUNCTIONAL				0x4000
       
   765 #define NDIS_PACKET_TYPE_ALL_FUNCTIONAL			0x2000
       
   766 #define NDIS_PACKET_TYPE_GROUP					0x1000
       
   767 //
       
   768 // Ndis Token-Ring Ring Status Codes (OID_802_5_CURRENT_RING_STATUS).
       
   769 //
       
   770 #define NDIS_RING_SIGNAL_LOSS					0x00008000
       
   771 #define NDIS_RING_HARD_ERROR					0x00004000
       
   772 #define NDIS_RING_SOFT_ERROR					0x00002000
       
   773 #define NDIS_RING_TRANSMIT_BEACON				0x00001000
       
   774 #define NDIS_RING_LOBE_WIRE_FAULT				0x00000800
       
   775 #define NDIS_RING_AUTO_REMOVAL_ERROR			0x00000400
       
   776 #define NDIS_RING_REMOVE_RECEIVED				0x00000200
       
   777 #define NDIS_RING_COUNTER_OVERFLOW				0x00000100
       
   778 #define NDIS_RING_SINGLE_STATION				0x00000080
       
   779 #define NDIS_RING_RING_RECOVERY					0x00000040
       
   780 //
       
   781 // Ndis protocol option bits (OID_GEN_PROTOCOL_OPTIONS).
       
   782 //
       
   783 #define NDIS_PROT_OPTION_ESTIMATED_LENGTH   	0x00000001
       
   784 #define NDIS_PROT_OPTION_NO_LOOPBACK			0x00000002
       
   785 #define NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT		0x00000004
       
   786 //
       
   787 // Ndis MAC option bits (OID_GEN_MAC_OPTIONS).
       
   788 //
       
   789 #define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 	0x00000001
       
   790 #define NDIS_MAC_OPTION_RECEIVE_SERIALIZED  	0x00000002
       
   791 #define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND  	0x00000004
       
   792 #define NDIS_MAC_OPTION_NO_LOOPBACK				0x00000008
       
   793 #define NDIS_MAC_OPTION_FULL_DUPLEX				0x00000010
       
   794 #define	NDIS_MAC_OPTION_EOTX_INDICATION			0x00000020
       
   795 #define NDIS_MAC_OPTION_RESERVED				0x80000000
       
   796 //
       
   797 //      NDIS MAC option bits for OID_GEN_CO_MAC_OPTIONS.
       
   798 //
       
   799 #define	NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED	0x00000001
       
   800 #ifdef	IRDA
       
   801 //
       
   802 // The following is set on a per-packet basis as OOB data with NdisClassIrdaPacketInfo
       
   803 // This is the per-packet info specified on a per-packet basis
       
   804 //
       
   805 typedef struct _NDIS_IRDA_PACKET_INFO {
       
   806     UINT ExtraBOFs;
       
   807     UINT MinTurnAroundTime;
       
   808 } NDIS_IRDA_PACKET_INFO, *PNDIS_IRDA_PACKET_INFO;
       
   809 
       
   810 #endif
       
   811 #ifdef  WIRELESS_WAN
       
   812 //
       
   813 // Wireless WAN structure definitions
       
   814 //
       
   815 //
       
   816 // currently defined Wireless network subtypes
       
   817 //
       
   818 typedef enum _NDIS_WW_NETWORK_TYPE {
       
   819     NdisWWGeneric,
       
   820     NdisWWMobitex,
       
   821     NdisWWPinpoint,
       
   822     NdisWWCDPD,
       
   823     NdisWWArdis,
       
   824     NdisWWDataTAC,
       
   825     NdisWWMetricom,
       
   826     NdisWWGSM,
       
   827     NdisWWCDMA,
       
   828     NdisWWTDMA,
       
   829     NdisWWAMPS,
       
   830     NdisWWInmarsat,
       
   831     NdisWWpACT
       
   832 } NDIS_WW_NETWORK_TYPE;
       
   833 
       
   834 //
       
   835 // currently defined header formats
       
   836 //
       
   837 typedef enum _NDIS_WW_HEADER_FORMAT {
       
   838     NdisWWDIXEthernetFrames,
       
   839     NdisWWMPAKFrames,
       
   840     NdisWWRDLAPFrames,
       
   841     NdisWWMDC4800Frames
       
   842 } NDIS_WW_HEADER_FORMAT;
       
   843 
       
   844 //
       
   845 // currently defined encryption types
       
   846 //
       
   847 typedef enum _NDIS_WW_ENCRYPTION_TYPE {
       
   848     NdisWWUnknownEncryption = -1,
       
   849     NdisWWNoEncryption,
       
   850     NdisWWDefaultEncryption
       
   851 } NDIS_WW_ENCRYPTION_TYPE, *PNDIS_WW_ENCRYPTION_TYPE;
       
   852 
       
   853 //
       
   854 // OID_WW_GEN_INDICATION_REQUEST
       
   855 //
       
   856 typedef struct _NDIS_WW_INDICATION_REQUEST {
       
   857     NDIS_OID Oid;		// IN
       
   858 
       
   859     UINT uIndicationFlag;	// IN
       
   860 
       
   861     UINT uApplicationToken;	// IN OUT
       
   862 
       
   863     HANDLE hIndicationHandle;	// IN OUT
       
   864 
       
   865     INT iPollingInterval;	// IN OUT
       
   866 
       
   867     NDIS_VAR_DATA_DESC InitialValue;	// IN OUT
       
   868 
       
   869     NDIS_VAR_DATA_DESC OIDIndicationValue;	// OUT - only valid after indication
       
   870 
       
   871     NDIS_VAR_DATA_DESC TriggerValue;	// IN
       
   872 
       
   873 } NDIS_WW_INDICATION_REQUEST, *PNDIS_WW_INDICATION_REQUEST;
       
   874 
       
   875 #define OID_INDICATION_REQUEST_ENABLE			0x0000
       
   876 #define OID_INDICATION_REQUEST_CANCEL			0x0001
       
   877 //
       
   878 // OID_WW_GEN_DEVICE_INFO
       
   879 //
       
   880 typedef struct _WW_DEVICE_INFO {
       
   881     NDIS_VAR_DATA_DESC Manufacturer;
       
   882     NDIS_VAR_DATA_DESC ModelNum;
       
   883     NDIS_VAR_DATA_DESC SWVersionNum;
       
   884     NDIS_VAR_DATA_DESC SerialNum;
       
   885 } WW_DEVICE_INFO, *PWW_DEVICE_INFO;
       
   886 
       
   887 //
       
   888 // OID_WW_GEN_OPERATION_MODE
       
   889 //
       
   890 typedef INT WW_OPERATION_MODE;	//  0 = Normal mode
       
   891 												//  1 = Power saving mode
       
   892 												// -1 = mode unknown
       
   893 //
       
   894 // OID_WW_GEN_LOCK_STATUS
       
   895 //
       
   896 
       
   897 typedef INT WW_LOCK_STATUS;	//  0 = unlocked
       
   898 												//  1 = locked
       
   899 												// -1 = unknown lock status
       
   900 //
       
   901 // OID_WW_GEN_DISABLE_TRANSMITTER
       
   902 //
       
   903 
       
   904 typedef INT WW_DISABLE_TRANSMITTER;	//  0 = transmitter enabled
       
   905 												//  1 = transmitter disabled
       
   906 												// -1 = unknown value
       
   907 //
       
   908 // OID_WW_GEN_NETWORK_ID
       
   909 //
       
   910 
       
   911 typedef NDIS_VAR_DATA_DESC WW_NETWORK_ID;
       
   912 //
       
   913 // OID_WW_GEN_PERMANENT_ADDRESS 
       
   914 //
       
   915 typedef NDIS_VAR_DATA_DESC WW_PERMANENT_ADDRESS;
       
   916 //
       
   917 // OID_WW_GEN_CURRENT_ADDRESS   
       
   918 //
       
   919 typedef struct _WW_CURRENT_ADDRESS {
       
   920     NDIS_WW_HEADER_FORMAT Format;
       
   921     NDIS_VAR_DATA_DESC Address;
       
   922 } WW_CURRENT_ADDRESS, *PWW_CURRENT_ADDRESS;
       
   923 
       
   924 //
       
   925 // OID_WW_GEN_SUSPEND_DRIVER
       
   926 //
       
   927 typedef BOOLEAN WW_SUSPEND_DRIVER;	// 0 = driver operational
       
   928 												// 1 = driver suspended
       
   929 //
       
   930 // OID_WW_GEN_BASESTATION_ID
       
   931 //
       
   932 
       
   933 typedef NDIS_VAR_DATA_DESC WW_BASESTATION_ID;
       
   934 //
       
   935 // OID_WW_GEN_CHANNEL_ID
       
   936 //
       
   937 typedef NDIS_VAR_DATA_DESC WW_CHANNEL_ID;
       
   938 //
       
   939 // OID_WW_GEN_ENCRYPTION_STATE
       
   940 //
       
   941 typedef BOOLEAN WW_ENCRYPTION_STATE;	// 0 = if encryption is disabled
       
   942 												// 1 = if encryption is enabled
       
   943 //
       
   944 // OID_WW_GEN_CHANNEL_QUALITY
       
   945 //
       
   946 
       
   947 typedef INT WW_CHANNEL_QUALITY;	//  0 = Not in network contact,
       
   948 												// 1-100 = Quality of Channel (100 is highest quality).
       
   949 												// -1 = channel quality is unknown
       
   950 //
       
   951 // OID_WW_GEN_REGISTRATION_STATUS
       
   952 //
       
   953 
       
   954 typedef INT WW_REGISTRATION_STATUS;	//  0 = Registration denied
       
   955 												//  1 = Registration pending
       
   956 												//  2 = Registered
       
   957 												// -1 = unknown registration status
       
   958 //
       
   959 // OID_WW_GEN_RADIO_LINK_SPEED
       
   960 //
       
   961 
       
   962 typedef UINT WW_RADIO_LINK_SPEED;	// Bits per second.
       
   963 //
       
   964 // OID_WW_GEN_LATENCY
       
   965 //
       
   966 
       
   967 typedef UINT WW_LATENCY;	//  milliseconds
       
   968 //
       
   969 // OID_WW_GEN_BATTERY_LEVEL
       
   970 //
       
   971 
       
   972 typedef INT WW_BATTERY_LEVEL;	//  0-100 = battery level in percentage
       
   973 												//      (100=fully charged)
       
   974 												// -1 = unknown battery level.
       
   975 //
       
   976 // OID_WW_GEN_EXTERNAL_POWER
       
   977 //
       
   978 
       
   979 typedef INT WW_EXTERNAL_POWER;	//   0 = no external power connected
       
   980 												//   1 = external power connected
       
   981 												//  -1 = unknown
       
   982 //
       
   983 // OID_WW_MET_FUNCTION
       
   984 //
       
   985 
       
   986 typedef NDIS_VAR_DATA_DESC WW_MET_FUNCTION;
       
   987 //
       
   988 // OID_WW_TAC_COMPRESSION
       
   989 //
       
   990 typedef BOOLEAN WW_TAC_COMPRESSION;	// Determines whether or not network level compression
       
   991 												// is being used.
       
   992 //
       
   993 // OID_WW_TAC_SET_CONFIG
       
   994 //
       
   995 
       
   996 typedef struct _WW_TAC_SETCONFIG {
       
   997     NDIS_VAR_DATA_DESC RCV_MODE;
       
   998     NDIS_VAR_DATA_DESC TX_CONTROL;
       
   999     NDIS_VAR_DATA_DESC RX_CONTROL;
       
  1000     NDIS_VAR_DATA_DESC FLOW_CONTROL;
       
  1001     NDIS_VAR_DATA_DESC RESET_CNF;
       
  1002     NDIS_VAR_DATA_DESC READ_CNF;
       
  1003 } WW_TAC_SETCONFIG, *PWW_TAC_SETCONFIG;
       
  1004 
       
  1005 //
       
  1006 // OID_WW_TAC_GET_STATUS
       
  1007 //
       
  1008 typedef struct _WW_TAC_GETSTATUS {
       
  1009     BOOLEAN Action;		// Set = Execute command.
       
  1010 
       
  1011     NDIS_VAR_DATA_DESC Command;
       
  1012     NDIS_VAR_DATA_DESC Option;
       
  1013     NDIS_VAR_DATA_DESC Response;	// The response to the requested command
       
  1014     // - max. length of string is 256 octets.
       
  1015 
       
  1016 } WW_TAC_GETSTATUS, *PWW_TAC_GETSTATUS;
       
  1017 
       
  1018 //
       
  1019 // OID_WW_TAC_USER_HEADER
       
  1020 //
       
  1021 typedef NDIS_VAR_DATA_DESC WW_TAC_USERHEADER;	// This will hold the user header - Max. 64 octets.
       
  1022 //
       
  1023 // OID_WW_ARD_SNDCP
       
  1024 //
       
  1025 
       
  1026 typedef struct _WW_ARD_SNDCP {
       
  1027     NDIS_VAR_DATA_DESC Version;	// The version of SNDCP protocol supported.
       
  1028 
       
  1029     INT BlockSize;		// The block size used for SNDCP
       
  1030 
       
  1031     INT Window;			// The window size used in SNDCP
       
  1032 
       
  1033 } WW_ARD_SNDCP, *PWW_ARD_SNDCP;
       
  1034 
       
  1035 //
       
  1036 // OID_WW_ARD_TMLY_MSG
       
  1037 //
       
  1038 typedef BOOLEAN WW_ARD_CHANNEL_STATUS;	// The current status of the inbound RF Channel.
       
  1039 //
       
  1040 // OID_WW_ARD_DATAGRAM
       
  1041 //
       
  1042 
       
  1043 typedef struct _WW_ARD_DATAGRAM {
       
  1044     BOOLEAN LoadLevel;		// Byte that contains the load level info.
       
  1045 
       
  1046     INT SessionTime;		// Datagram session time remaining.
       
  1047 
       
  1048     NDIS_VAR_DATA_DESC HostAddr;	// Host address.
       
  1049 
       
  1050     NDIS_VAR_DATA_DESC THostAddr;	// Test host address.
       
  1051 
       
  1052 } WW_ARD_DATAGRAM, *PWW_ARD_DATAGRAM;
       
  1053 
       
  1054 //
       
  1055 // OID_WW_CDPD_SPNI
       
  1056 //
       
  1057 typedef struct _WW_CDPD_SPNI {
       
  1058     UINT SPNI[10];		//10 16-bit service provider network IDs
       
  1059 
       
  1060     INT OperatingMode;		// 0 = ignore SPNI,
       
  1061     // 1 = require SPNI from list,
       
  1062     // 2 = prefer SPNI from list.
       
  1063     // 3 = exclude SPNI from list.
       
  1064 
       
  1065 } WW_CDPD_SPNI, *PWW_CDPD_SPNI;
       
  1066 
       
  1067 //
       
  1068 // OID_WW_CDPD_WASI
       
  1069 //
       
  1070 typedef struct _WW_CDPD_WIDE_AREA_SERVICE_ID {
       
  1071     UINT WASI[10];		//10 16-bit wide area service IDs
       
  1072 
       
  1073     INT OperatingMode;		// 0 = ignore WASI,
       
  1074     // 1 = Require WASI from list,
       
  1075     // 2 = prefer WASI from list
       
  1076     // 3 = exclude WASI from list.
       
  1077 
       
  1078 } WW_CDPD_WIDE_AREA_SERVICE_ID, *PWW_CDPD_WIDE_AREA_SERVICE_ID;
       
  1079 
       
  1080 //
       
  1081 // OID_WW_CDPD_AREA_COLOR
       
  1082 //
       
  1083 typedef INT WW_CDPD_AREA_COLOR;
       
  1084 //
       
  1085 // OID_WW_CDPD_TX_POWER_LEVEL
       
  1086 //
       
  1087 typedef UINT WW_CDPD_TX_POWER_LEVEL;
       
  1088 //
       
  1089 // OID_WW_CDPD_EID
       
  1090 //
       
  1091 typedef NDIS_VAR_DATA_DESC WW_CDPD_EID;
       
  1092 //
       
  1093 // OID_WW_CDPD_HEADER_COMPRESSION
       
  1094 //
       
  1095 typedef INT WW_CDPD_HEADER_COMPRESSION;		//  0 = no header compression,
       
  1096 												//  1 = always compress headers,
       
  1097 												//  2 = compress headers if MD-IS does
       
  1098 												// -1 = unknown
       
  1099 //
       
  1100 // OID_WW_CDPD_DATA_COMPRESSION
       
  1101 //
       
  1102 
       
  1103 typedef INT WW_CDPD_DATA_COMPRESSION;	// 0  = no data compression,
       
  1104 												// 1  = data compression enabled
       
  1105 												// -1 =  unknown
       
  1106 //
       
  1107 // OID_WW_CDPD_CHANNEL_SELECT
       
  1108 //
       
  1109 
       
  1110 typedef struct _WW_CDPD_CHANNEL_SELECT {
       
  1111     UINT ChannelID;		// channel number
       
  1112 
       
  1113     UINT fixedDuration;		// duration in seconds
       
  1114 
       
  1115 } WW_CDPD_CHANNEL_SELECT, *PWW_CDPD_CHANNEL_SELECT;
       
  1116 
       
  1117 //
       
  1118 // OID_WW_CDPD_CHANNEL_STATE
       
  1119 //
       
  1120 typedef enum _WW_CDPD_CHANNEL_STATE {
       
  1121     CDPDChannelNotAvail,
       
  1122     CDPDChannelScanning,
       
  1123     CDPDChannelInitAcquired,
       
  1124     CDPDChannelAcquired,
       
  1125     CDPDChannelSleeping,
       
  1126     CDPDChannelWaking,
       
  1127     CDPDChannelCSDialing,
       
  1128     CDPDChannelCSRedial,
       
  1129     CDPDChannelCSAnswering,
       
  1130     CDPDChannelCSConnected,
       
  1131     CDPDChannelCSSuspended
       
  1132 } WW_CDPD_CHANNEL_STATE, *PWW_CDPD_CHANNEL_STATE;
       
  1133 
       
  1134 //
       
  1135 // OID_WW_CDPD_NEI
       
  1136 //
       
  1137 typedef enum _WW_CDPD_NEI_FORMAT {
       
  1138     CDPDNeiIPv4,
       
  1139     CDPDNeiCLNP,
       
  1140     CDPDNeiIPv6
       
  1141 } WW_CDPD_NEI_FORMAT, *PWW_CDPD_NEI_FORMAT;
       
  1142 typedef enum _WW_CDPD_NEI_TYPE {
       
  1143     CDPDNeiIndividual,
       
  1144     CDPDNeiMulticast,
       
  1145     CDPDNeiBroadcast
       
  1146 } WW_CDPD_NEI_TYPE;
       
  1147 typedef struct _WW_CDPD_NEI {
       
  1148     UINT uNeiIndex;
       
  1149     WW_CDPD_NEI_FORMAT NeiFormat;
       
  1150     WW_CDPD_NEI_TYPE NeiType;
       
  1151     WORD NeiGmid;		// group member identifier, only
       
  1152     // meaningful if NeiType ==
       
  1153     // CDPDNeiMulticast
       
  1154 
       
  1155     NDIS_VAR_DATA_DESC NeiAddress;
       
  1156 } WW_CDPD_NEI;
       
  1157 
       
  1158 //
       
  1159 // OID_WW_CDPD_NEI_STATE
       
  1160 //
       
  1161 typedef enum _WW_CDPD_NEI_STATE {
       
  1162     CDPDUnknown,
       
  1163     CDPDRegistered,
       
  1164     CDPDDeregistered
       
  1165 } WW_CDPD_NEI_STATE, *PWW_CDPD_NEI_STATE;
       
  1166 typedef enum _WW_CDPD_NEI_SUB_STATE {
       
  1167     CDPDPending,		// Registration pending
       
  1168      CDPDNoReason,		// Registration denied - no reason given
       
  1169      CDPDMDISNotCapable,	// Registration denied - MD-IS not capable of
       
  1170     //  handling M-ES at this time
       
  1171      CDPDNEINotAuthorized,	// Registration denied - NEI is not authorized to
       
  1172     //  use this subnetwork
       
  1173      CDPDInsufficientAuth,	// Registration denied - M-ES gave insufficient
       
  1174     //  authentication credentials
       
  1175      CDPDUnsupportedAuth,	// Registration denied - M-ES gave unsupported
       
  1176     //  authentication credentials
       
  1177      CDPDUsageExceeded,		// Registration denied - NEI has exceeded usage
       
  1178     //  limitations
       
  1179      CDPDDeniedThisNetwork	// Registration denied on this network, service
       
  1180     //  may be obtained on alternate Service Provider
       
  1181     //  network
       
  1182 } WW_CDPD_NEI_SUB_STATE;
       
  1183 typedef struct _WW_CDPD_NEI_REG_STATE {
       
  1184     UINT uNeiIndex;
       
  1185     WW_CDPD_NEI_STATE NeiState;
       
  1186     WW_CDPD_NEI_SUB_STATE NeiSubState;
       
  1187 } WW_CDPD_NEI_REG_STATE, *PWW_CDPD_NEI_REG_STATE;
       
  1188 
       
  1189 //
       
  1190 // OID_WW_CDPD_SERVICE_PROVIDER_IDENTIFIER
       
  1191 //
       
  1192 typedef struct _WW_CDPD_SERVICE_PROVIDER_ID {
       
  1193     UINT SPI[10];		//10 16-bit service provider IDs
       
  1194 
       
  1195     INT OperatingMode;		// 0 = ignore SPI,
       
  1196     // 1 = require SPI from list,
       
  1197     // 2 = prefer SPI from list.
       
  1198     // 3 = exclude SPI from list.
       
  1199 
       
  1200 } WW_CDPD_SERVICE_PROVIDER_ID, *PWW_CDPD_SERVICE_PROVIDER_ID;
       
  1201 
       
  1202 //
       
  1203 // OID_WW_CDPD_SLEEP_MODE
       
  1204 //
       
  1205 typedef INT WW_CDPD_SLEEP_MODE;
       
  1206 //
       
  1207 // OID_WW_CDPD_TEI
       
  1208 //
       
  1209 typedef ULONG WW_CDPD_TEI;
       
  1210 //
       
  1211 // OID_WW_CDPD_CIRCUIT_SWITCHED
       
  1212 //
       
  1213 typedef struct _WW_CDPD_CIRCUIT_SWITCHED {
       
  1214     INT service_preference;	// -1 = unknown,
       
  1215     //  0 = always use packet switched CDPD,
       
  1216     //  1 = always use CS CDPD via AMPS,
       
  1217     //  2 = always use CS CDPD via PSTN,
       
  1218     //  3 = use circuit switched via AMPS only
       
  1219     //      when packet switched is not available.
       
  1220     //  4 = use packet switched only when circuit
       
  1221     //   switched via AMPS is not available.
       
  1222     //  5 = device manuf. defined service
       
  1223     //   preference.
       
  1224     //  6 = device manuf. defined service
       
  1225     //   preference.
       
  1226 
       
  1227     INT service_status;		// -1 = unknown,
       
  1228     //  0 = packet switched CDPD,
       
  1229     //  1 = circuit switched CDPD via AMPS,
       
  1230     //  2 = circuit switched CDPD via PSTN.
       
  1231 
       
  1232     INT connect_rate;		//  CS connection bit rate (bits per second).
       
  1233     //  0 = no active connection,
       
  1234     // -1 = unknown
       
  1235     //  Dial code last used to dial.
       
  1236 
       
  1237     NDIS_VAR_DATA_DESC dial_code[20];
       
  1238 
       
  1239     UINT sid;			//  Current AMPS system ID
       
  1240 
       
  1241     INT a_b_side_selection;	// -1 = unknown,
       
  1242     //  0 = no AMPS service
       
  1243     //  1 = AMPS "A" side channels selected
       
  1244     //  2 = AMPS "B" side channels selected
       
  1245 
       
  1246     INT AMPS_channel;		// -1= unknown
       
  1247     //  0 = no AMPS service.
       
  1248     //  1-1023 = AMPS channel number in use
       
  1249 
       
  1250     UINT action;		//  0 = no action
       
  1251     //  1 = suspend (hangup)
       
  1252     //  2 = dial
       
  1253 
       
  1254     //  Default dial code for CS CDPD service
       
  1255     //  encoded as specified in the CS CDPD
       
  1256     //  implementor guidelines.
       
  1257     NDIS_VAR_DATA_DESC default_dial[20];
       
  1258 
       
  1259     //  Number for the CS CDPD network to call
       
  1260     //   back the mobile, encoded as specified in
       
  1261     //   the CS CDPD implementor guidelines.
       
  1262     NDIS_VAR_DATA_DESC call_back[20];
       
  1263 
       
  1264     UINT sid_list[10];		//  List of 10 16-bit preferred AMPS
       
  1265     //   system IDs for CS CDPD.
       
  1266 
       
  1267     UINT inactivity_timer;	//  Wait time after last data before dropping
       
  1268     //   call.
       
  1269     //  0-65535 = inactivity time limit (seconds).
       
  1270 
       
  1271     UINT receive_timer;		//  secs. per CS-CDPD Implementor Guidelines.
       
  1272 
       
  1273     UINT conn_resp_timer;	//  secs. per CS-CDPD Implementor Guidelines.
       
  1274 
       
  1275     UINT reconn_resp_timer;	//  secs. per CS-CDPD Implementor Guidelines.
       
  1276 
       
  1277     UINT disconn_timer;		//  secs. per CS-CDPD Implementor Guidelines.
       
  1278 
       
  1279     UINT NEI_reg_timer;		//  secs. per CS-CDPD Implementor Guidelines.
       
  1280 
       
  1281     UINT reconn_retry_timer;	//  secs. per CS-CDPD Implementor Guidelines.
       
  1282 
       
  1283     UINT link_reset_timer;	//  secs. per CS-CDPD Implementor Guidelines.
       
  1284 
       
  1285     UINT link_reset_ack_timer;	//  secs. per CS-CDPD Implementor Guidelines.
       
  1286 
       
  1287     UINT n401_retry_limit;	//  per CS-CDPD Implementor Guidelines.
       
  1288 
       
  1289     UINT n402_retry_limit;	//  per CS-CDPD Implementor Guidelines.
       
  1290 
       
  1291     UINT n404_retry_limit;	//  per CS-CDPD Implementor Guidelines.
       
  1292 
       
  1293     UINT n405_retry_limit;	//  per CS-CDPD Implementor Guidelines.
       
  1294 
       
  1295 } WW_CDPD_CIRCUIT_SWITCHED, *WW_PCDPD_CIRCUIT_SWITCHED;
       
  1296 typedef UINT WW_CDPD_RSSI;
       
  1297 //
       
  1298 // OID_WW_PIN_LOC_AUTHORIZE
       
  1299 //
       
  1300 typedef INT WW_PIN_AUTHORIZED;	// 0  = unauthorized
       
  1301 												// 1  = authorized
       
  1302 												// -1 = unknown
       
  1303 //
       
  1304 // OID_WW_PIN_LAST_LOCATION
       
  1305 // OID_WW_PIN_LOC_FIX
       
  1306 //
       
  1307 
       
  1308 typedef struct _WW_PIN_LOCATION {
       
  1309     INT Latitude;		// Latitude in hundredths of a second
       
  1310 
       
  1311     INT Longitude;		// Longitude in hundredths of a second
       
  1312 
       
  1313     INT Altitude;		// Altitude in feet
       
  1314 
       
  1315     INT FixTime;		// Time of the location fix, since midnight,  local time (of the
       
  1316     // current day), in tenths of a second
       
  1317 
       
  1318     INT NetTime;		// Current local network time of the current day, since midnight,
       
  1319     // in tenths of a second
       
  1320 
       
  1321     INT LocQuality;		// 0-100 = location quality
       
  1322 
       
  1323     INT LatReg;			// Latitude registration offset, in hundredths of a second
       
  1324 
       
  1325     INT LongReg;		// Longitude registration offset, in hundredths of a second
       
  1326 
       
  1327     INT GMTOffset;		// Offset in minutes of the local time zone from GMT
       
  1328 
       
  1329 } WW_PIN_LOCATION, *PWW_PIN_LOCATION;
       
  1330 
       
  1331 //
       
  1332 // The following is set on a per-packet basis as OOB data with NdisClassWirelessWanMbxMailbox
       
  1333 //
       
  1334 typedef ULONG WW_MBX_MAILBOX_FLAG;	// 1 = set mailbox flag, 0 = do not set mailbox flag
       
  1335 //
       
  1336 // OID_WW_MBX_SUBADDR
       
  1337 //
       
  1338 
       
  1339 typedef struct _WW_MBX_PMAN {
       
  1340     BOOLEAN ACTION;		// 0 = Login PMAN,  1 = Logout PMAN
       
  1341 
       
  1342     UINT MAN;
       
  1343     UCHAR PASSWORD[8];		// Password should be null for Logout and indications.
       
  1344     // Maximum length of password is 8 chars.
       
  1345 
       
  1346 } WW_MBX_PMAN, *PWW_MBX_PMAN;
       
  1347 
       
  1348 //
       
  1349 // OID_WW_MBX_FLEXLIST
       
  1350 //
       
  1351 typedef struct _WW_MBX_FLEXLIST {
       
  1352     INT count;			//  Number of MAN entries used.
       
  1353     // -1=unknown.
       
  1354 
       
  1355     UINT MAN[7];		//  List of MANs.
       
  1356 
       
  1357 } WW_MBX_FLEXLIST;
       
  1358 
       
  1359 //
       
  1360 // OID_WW_MBX_GROUPLIST
       
  1361 //
       
  1362 typedef struct _WW_MBX_GROUPLIST {
       
  1363     INT count;			//  Number of MAN entries used.
       
  1364     // -1=unknown.
       
  1365 
       
  1366     UINT MAN[15];		//  List of MANs.
       
  1367 
       
  1368 } WW_MBX_GROUPLIST;
       
  1369 
       
  1370 //
       
  1371 // OID_WW_MBX_TRAFFIC_AREA
       
  1372 //
       
  1373 typedef enum _WW_MBX_TRAFFIC_AREA {
       
  1374     unknown_traffic_area,	// The driver has no information about the current traffic area.
       
  1375      in_traffic_area,		// Mobile unit has entered a subscribed traffic area.
       
  1376      in_auth_traffic_area,	// Mobile unit is outside traffic area but is authorized.
       
  1377      unauth_traffic_area	// Mobile unit is outside traffic area but is un-authorized.
       
  1378 } WW_MBX_TRAFFIC_AREA;
       
  1379 
       
  1380 //
       
  1381 // OID_WW_MBX_LIVE_DIE
       
  1382 //
       
  1383 typedef INT WW_MBX_LIVE_DIE;	//  0 = DIE last received       
       
  1384 												//  1 = LIVE last received
       
  1385 												// -1 = unknown
       
  1386 //
       
  1387 // OID_WW_MBX_TEMP_DEFAULTLIST
       
  1388 //
       
  1389 
       
  1390 typedef struct _WW_MBX_CHANNEL_PAIR {
       
  1391     UINT Mobile_Tx;
       
  1392     UINT Mobile_Rx;
       
  1393 } WW_MBX_CHANNEL_PAIR, *PWW_MBX_CHANNEL_PAIR;
       
  1394 typedef struct _WW_MBX_TEMPDEFAULTLIST {
       
  1395     UINT Length;
       
  1396     WW_MBX_CHANNEL_PAIR ChannelPair[1];
       
  1397 } WW_MBX_TEMPDEFAULTLIST, *WW_PMBX_TEMPDEFAULTLIST;
       
  1398 
       
  1399 #endif				// WIRELESS_WAN
       
  1400 #endif				// _NTDDNDIS_