• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2 **+-----------------------------------------------------------------------+**
3 **|                                                                       |**
4 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
5 **| All rights reserved.                                                  |**
6 **|                                                                       |**
7 **| Redistribution and use in source and binary forms, with or without    |**
8 **| modification, are permitted provided that the following conditions    |**
9 **| are met:                                                              |**
10 **|                                                                       |**
11 **|  * Redistributions of source code must retain the above copyright     |**
12 **|    notice, this list of conditions and the following disclaimer.      |**
13 **|  * Redistributions in binary form must reproduce the above copyright  |**
14 **|    notice, this list of conditions and the following disclaimer in    |**
15 **|    the documentation and/or other materials provided with the         |**
16 **|    distribution.                                                      |**
17 **|  * Neither the name Texas Instruments nor the names of its            |**
18 **|    contributors may be used to endorse or promote products derived    |**
19 **|    from this software without specific prior written permission.      |**
20 **|                                                                       |**
21 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
22 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
23 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
24 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
25 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
26 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
27 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
28 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
29 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
30 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
31 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
32 **|                                                                       |**
33 **+-----------------------------------------------------------------------+**
34 ****************************************************************************/
35 
36 #undef BINARY_COMPATIBLE
37 #define BINARY_COMPATIBLE 0
38 
39 #ifdef _WINDOWS
40 #endif
41 
42 #include "osAdapter.h"
43 #include "tiioctl.h"
44 #include "paramOut.h"
45 #include "osUtil.h"
46 #include "srcApi.h"
47 #include "configMgr.h"
48 #include "TNETW_Driver_api.h"
49 
50 #ifdef GWSI_DRIVER
51 #include "gwsi_tester_parser.h"
52 #endif
53 
54 #include "IPCKernelApi.h"
55 
56 #ifdef TI_DBG
57 #ifndef TIWLAN_MSM7000
58 #include "debug.h"
59 #endif
60 #endif
61 
62 TI_STATUS report_setParam(TI_HANDLE hReport, whalParamInfo_t *pParam );
63 TI_STATUS report_getParam(TI_HANDLE hReport, whalParamInfo_t *pParam );
64 
65 NTSTATUS
DispatchCommand(PTIWLN_ADAPTER_T pAdapter,ULONG ioControlCode,PULONG outBufLen,ULONG inBufLen,PVOID ioBuffer,PUINT8 pIoCompleteFlag)66 DispatchCommand(
67     PTIWLN_ADAPTER_T pAdapter,
68     ULONG ioControlCode,
69     PULONG outBufLen,
70     ULONG inBufLen,
71     PVOID ioBuffer,
72     PUINT8 pIoCompleteFlag
73     )
74 {
75     NTSTATUS    ntStatus = STATUS_SUCCESS;
76 
77 #ifdef TI_DBG
78     whalParamInfo_t     param;
79 #endif
80 
81     /*BOOL    builtInStatus;*/
82 /**/
83 /*     Block entrance from utility to the driver when the recovery is in progress */
84 /*    UtilDriverBuiltInTestStsGet(pAdapter, &builtInStatus, sizeof(builtInStatus));*/
85 /*    if(builtInStatus)*/
86 /*        return STATUS_INVALID_PARAMETER;*/
87 
88     // os_protectLock(pAdapter, pAdapter->SystemProtect); /* Bug. Replaced with the line below -- MCS00035801 */
89     /* Dm: os_protectLock(( (configMgr_t  *)(pAdapter->CoreHalCtx) )->hOs, pAdapter->SystemProtect); */
90 
91 
92     /* Initialiaze to TRUE all IOCTL's : Only in few cases there will be IOCTL that will
93     be implemented ar REALread from FW and then will have their completion callback later called */
94     *pIoCompleteFlag = TRUE;
95 
96     switch(ioControlCode) {
97     case TIWLN_802_11_ENABLE_EVENT:
98         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_ENABLE_EVENT.\n");
99         ntStatus = configMgr_RegisterEvent(pAdapter->CoreHalCtx, ioBuffer, inBufLen);
100     break;
101 
102     case TIWLN_802_11_DISABLE_EVENT:
103 
104         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_DISABLE_EVENT.\n");
105 #ifdef _WINDOWS
106 #else
107         ntStatus = configMgr_UnRegisterEvent(pAdapter->CoreHalCtx, *(TI_HANDLE*)ioBuffer);
108 #endif
109     break;
110 
111 #ifdef _WINDOWS
112 #endif
113     case TIWLN_GET_SW_VERSION:
114         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_GET_SW_VERSION.\n");
115         ntStatus = UtilGetSwVersion(pAdapter, ioBuffer, outBufLen);
116         break;
117 
118     case TIWLN_802_11_BSSID_GET:
119         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_BSSID_GET.\n");
120         ntStatus = UtilGetBSSID(pAdapter, ioBuffer, outBufLen);
121         break;
122 
123     case TIWLN_802_11_BSSID_SET:
124         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_BSSID_SET.\n");
125         ntStatus = UtilSetBSSID(pAdapter, ioBuffer, inBufLen);
126         break;
127 
128     case TIWLN_802_11_SSID_GET:
129         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SSID_GET.\n");
130         ntStatus = UtilGetSSID(pAdapter, ioBuffer, outBufLen);
131         break;
132 
133     case TIWLN_802_11_SSID_SET:
134         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SSID_SET.\n");
135         ntStatus = UtilSetSSID(pAdapter, ioBuffer, inBufLen);
136         break;
137 
138     case TIWLN_802_11_DISASSOCIATE:
139        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_DISASSOCIATE.\n");
140         ntStatus = UtilDisassociate(pAdapter, ioBuffer, inBufLen);
141        break;
142 
143     case TIWLN_802_11_NETWORK_TYPES_SUPPORTED:
144         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_NETWORK_TYPES_SUPPORTED.\n");
145         ntStatus = UtilNetworkTypesSupported(pAdapter, ioBuffer, outBufLen);
146         break;
147 
148     case TIWLN_802_11_NETWORK_TYPE_IN_USE_GET:
149         PRINT(DBG_IOCTL, "...IOCTL TIWLN_802_11_NETWORK_TYPE_IN_USE_GET.\n");
150         ntStatus = UtilNetworkTypeInUseGet(pAdapter, ioBuffer, outBufLen);
151         break;
152 
153     case TIWLN_802_11_NETWORK_TYPE_IN_USE_SET:
154         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_NETWORK_TYPE_IN_USE_SET.\n");
155         break;
156 
157     case TIWLN_802_11_POWER_MODE_SET:
158         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POWER_MODE_SET.\n");
159         ntStatus = UtilPowerModeSet(pAdapter, ioBuffer, inBufLen);
160         break;
161 
162     case TIWLN_802_11_POWER_MODE_GET:
163         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POWER_MODE_GET.\n");
164         ntStatus = UtilPowerModeGet(pAdapter, ioBuffer, outBufLen);
165         break;
166 
167     case TIWLN_802_11_POWER_LEVEL_PS_GET:
168         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POWER_LEVEL_PS_GET.\n");
169             ntStatus = UtilPowerLevelPSGet(pAdapter, ioBuffer, outBufLen);
170             break;
171 
172     case TIWLN_802_11_POWER_LEVEL_PS_SET:
173         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POWER_LEVEL_PS_SET.\n");
174             ntStatus = UtilPowerLevelPSSet(pAdapter, ioBuffer, outBufLen);
175             break;
176 
177     case TIWLN_802_11_POWER_LEVEL_DEFAULT_GET:
178         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POWER_LEVEL_DEFAULT_GET.\n");
179             ntStatus = UtilPowerLevelDefaultGet(pAdapter, ioBuffer, outBufLen);
180             break;
181 
182     case TIWLN_802_11_POWER_LEVEL_DEFAULT_SET:
183         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POWER_LEVEL_DEFAULT_SET.\n");
184             ntStatus = UtilPowerLevelDefaultSet(pAdapter, ioBuffer, outBufLen);
185             break;
186 
187     case TIWLN_802_11_POWER_LEVEL_DOZE_MODE_GET:
188         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POWER_LEVEL_DOZE_MODE_GET.\n");
189             ntStatus = UtilPowerLevelDozeModeGet(pAdapter, ioBuffer, outBufLen);
190             break;
191 
192     case TIWLN_802_11_POWER_LEVEL_DOZE_MODE_SET:
193         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POWER_LEVEL_DOZE_MODE_SET.\n");
194             ntStatus = UtilPowerLevelDozeModeSet(pAdapter, ioBuffer, outBufLen);
195             break;
196 
197 	case TIWLN_802_11_BEACON_FILTER_DESIRED_STATE_SET:
198         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_BEACON_FILTER_DESIRED_STATE_SET.\n");
199             ntStatus = UtilBeaconFilterDesiredStateSet(pAdapter, ioBuffer, outBufLen);
200         break;
201 
202     case TIWLN_802_11_BEACON_FILTER_DESIRED_STATE_GET:
203         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_BEACON_FILTER_DESIRED_STATE_GET.\n");
204             ntStatus = UtilBeaconFilterDesiredStateGet(pAdapter, ioBuffer, outBufLen);
205         break;
206 
207     case TIWLN_802_11_SET_TRAFFIC_INTENSITY_THRESHOLDS:
208        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SET_TRAFFIC_INTENSITY_THRESHOLDS.\n");
209        ntStatus = UtilSetTrafficIntensityThresholds(pAdapter, ioBuffer, inBufLen);
210        break;
211     case TIWLN_802_11_GET_TRAFFIC_INTENSITY_THRESHOLDS:
212        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_TRAFFIC_INTENSITY_THRESHOLDS.\n");
213        ntStatus = UtilGetTrafficIntensityThresholds(pAdapter, ioBuffer, outBufLen);
214        break;
215 
216     case TIWLN_802_11_TOGGLE_TRAFFIC_INTENSITY_EVENTS:
217        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_TOGGLE_TRAFFIC_INTENSITY_EVENTS.\n");
218        ntStatus = UtilToggleTrafficIntensityEvents(pAdapter, ioBuffer, inBufLen);
219        break;
220 
221     /* TBD: CAN BE REMOVED ??? */
222     case TIWLN_802_11_POWER_MGR_PROFILE:
223         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POWER_MGR_PROFILE.\n");
224         ntStatus = UtilPowerModeSet(pAdapter, ioBuffer, inBufLen);
225         break;
226 
227     case TIWLN_802_11_TX_POWER_LEVEL_GET:
228         PRINT(DBG_IOCTL, "...IOCTL TIWLN_802_11_TX_POWER_LEVEL_GET.\n");
229         ntStatus = UtilGetTxPowerLevel (pAdapter, ioBuffer, outBufLen);
230         break;
231 
232     case TIWLN_802_11_TX_POWER_DBM_GET:
233         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_TX_POWER_DBM_GET.\n");
234         ntStatus = UtilTxPowerLevelDbmGet (pAdapter, ioBuffer, outBufLen);
235         break;
236 
237     case TIWLN_802_11_TX_POWER_DBM_SET:
238         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_TX_POWER_DBM_SET.\n");
239         ntStatus = UtilSetTxPowerDbm (pAdapter, ioBuffer, inBufLen);
240         break;
241 
242     /*************************************************************************
243     ****  RSSI :Real Read from FW asynchronous then init the flag to False   ***
244     ***** The completion will happen when the Completion                     ***
245     ***** Callback IoctlCompleteCB function is called                        ***
246     *************************************************************************/
247     case TIWLN_802_11_RSSI:
248         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_RSSI.\n");
249         *pIoCompleteFlag = FALSE;
250         ntStatus = UtilGetAsyncCurrentRssiLevel (pAdapter, ioBuffer, outBufLen);
251 
252         /* ntStatus = UtilGetCurrentRssiLevel (pAdapter, ioBuffer, outBufLen);*/
253         break;
254 
255     case TIWLN_802_11_SNR:
256         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SNR.\n");
257         *pIoCompleteFlag = FALSE;
258         ntStatus = UtilGetAsyncCurrentSnrRatio (pAdapter, ioBuffer, outBufLen);
259         break;
260 
261         /* TBD: REMOVE ???? */
262     case TIWLN_802_11_RSSI_TRIGGER_GET:
263         PRINT(DBG_IOCTL, "...IOCTL TIWLN_802_11_RSSI_TRIGGER_GET.\n");
264         *outBufLen = 4;
265         break;
266 
267         /* TBD: REMOVE ???? */
268     case TIWLN_802_11_RSSI_TRIGGER_SET:
269         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_RSSI_TRIGGER_SET.\n");
270         *outBufLen = 4;
271         break;
272 
273     case TIWLN_802_11_BSSID_LIST:
274         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_BSSID_LIST.\n");
275         ntStatus = UtilBssidListGet(pAdapter, ioBuffer, outBufLen, TRUE, FALSE);
276         break;
277 
278     case TIWLN_802_11_FULL_BSSID_LIST:
279         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_FULL_BSSID_LIST.\n");
280         ntStatus = UtilBssidListGet(pAdapter, ioBuffer, outBufLen, TRUE, TRUE);
281         break;
282 
283     case TIWLN_802_11_INFRASTRUCTURE_MODE_GET:
284         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_INFRASTRUCTURE_MODE_GET.\n");
285         ntStatus = UtilInfrastructureModeGet(pAdapter, ioBuffer, outBufLen);
286         break;
287 
288     case TIWLN_802_11_INFRASTRUCTURE_MODE_SET:
289         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_INFRASTRUCTURE_MODE_SET.\n");
290         ntStatus = UtilInfrastructureModeSet(pAdapter, ioBuffer, inBufLen);
291         break;
292 
293     case TIWLN_802_11_FRAGMENTATION_THRESHOLD_GET:
294         PRINT(DBG_IOCTL, "...IOCTL TIWLN_802_11_FRAGMENTATION_THRESHOLD_GET.\n");
295         ntStatus = UtilFragmentationThresholdGet(pAdapter, ioBuffer, outBufLen);
296         break;
297 
298     case TIWLN_802_11_FRAGMENTATION_THRESHOLD_SET:
299         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_FRAGMENTATION_THRESHOLD_SET.\n");
300         ntStatus = UtilFragmentationThresholdSet(pAdapter, ioBuffer, inBufLen);
301         break;
302 
303     case TIWLN_802_11_RTS_THRESHOLD_GET:
304         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_FRAGMENTATION_THRESHOLD_GET.\n");
305         ntStatus = UtilRtsThresholdGet(pAdapter, ioBuffer, outBufLen);
306         break;
307 
308     case TIWLN_802_11_RTS_THRESHOLD_SET:
309         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_FRAGMENTATION_THRESHOLD_SET.\n");
310         ntStatus = UtilRtsThresholdSet(pAdapter, ioBuffer, inBufLen);
311         break;
312 
313     case TIWLN_802_11_SUPPORTED_RATES:
314         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SUPPORTED_RATES.\n");
315         ntStatus = UtilSupportedRates(pAdapter, ioBuffer, outBufLen);
316         break;
317 
318     case TIWLN_802_11_SUPPORTED_RATES_SET:
319         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SUPPORTED_RATES_SET.\n");
320         ntStatus = UtilSupportedRatesSet(pAdapter, ioBuffer, inBufLen);
321         break;
322 
323     case TIWLN_802_11_DESIRED_RATES_GET:
324         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_DESIRED_RATES_GET.\n");
325         ntStatus = UtilDesiredRatesGet(pAdapter, ioBuffer, outBufLen);
326         break;
327 
328     case TIWLN_802_11_CURRENT_RATES_GET:
329         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_DESIRED_RATES_GET.\n");
330         ntStatus = UtilCurrentRatesGet(pAdapter, ioBuffer, outBufLen);
331         break;
332 
333     case TIWLN_802_11_STATISTICS:
334         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_STATISTICS.\n");
335         ntStatus = UtilStatistics(pAdapter, ioBuffer, outBufLen);
336         break;
337 
338     case TIWLN_802_11_TX_STATISTICS:
339         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_TX_STATISTICS.\n");
340         ntStatus = UtilTxStatistics(pAdapter, ioBuffer, inBufLen, outBufLen);
341         break;
342 
343     case TIWLN_802_11_ADD_WEP:
344         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_ADD_WEP.\n");
345         ntStatus = UtilAddWep(pAdapter, ioBuffer, inBufLen, TRUE);
346         break;
347 
348     case TIWLN_802_11_REMOVE_WEP:
349         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_REMOVE_WEP.\n");
350         ntStatus = UtilRemoveWep(pAdapter, ioBuffer, inBufLen);
351         break;
352 
353     case TIWLN_802_11_WEP_STATUS_GET:
354         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_WEP_STATUS_GET.\n");
355         ntStatus = UtilWepStatusGet(pAdapter, ioBuffer, outBufLen);
356 
357             switch (*(cipherSuite_e*)ioBuffer)
358             {
359             case RSN_CIPHER_NONE:
360                 *(NDIS_802_11_WEP_STATUS*)ioBuffer = (NDIS_802_11_WEP_STATUS)os802_11WEPDisabled;
361                 break;
362             case RSN_CIPHER_WEP:
363                 *(NDIS_802_11_WEP_STATUS*)ioBuffer = (NDIS_802_11_WEP_STATUS)os802_11WEPEnabled;
364                 break;
365             case RSN_CIPHER_TKIP:
366                 *(NDIS_802_11_WEP_STATUS*)ioBuffer = (NDIS_802_11_WEP_STATUS)os802_11Encryption2Enabled;
367                 break;
368             case RSN_CIPHER_AES_CCMP:
369                 *(NDIS_802_11_WEP_STATUS*)ioBuffer = (NDIS_802_11_WEP_STATUS)os802_11Encryption3Enabled;
370                 break;
371             default:
372                 break;
373             }
374 
375         break;
376 
377     case TIWLN_802_11_WEP_STATUS_SET:
378         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_WEP_STATUS_SET.\n");
379 
380         /* Convert from cipher suite to encryption status */
381 
382         switch (*(NDIS_802_11_WEP_STATUS*)ioBuffer)
383         {
384         case os802_11WEPDisabled:
385             *(cipherSuite_e*)ioBuffer = RSN_CIPHER_NONE;
386             break;
387         case os802_11WEPEnabled:
388             *(cipherSuite_e*)ioBuffer = RSN_CIPHER_WEP;
389             break;
390         case os802_11Encryption2Enabled:
391             *(cipherSuite_e*)ioBuffer = RSN_CIPHER_TKIP;
392             break;
393         case os802_11Encryption3Enabled:
394             *(cipherSuite_e*)ioBuffer = RSN_CIPHER_AES_CCMP;
395             break;
396         default:
397             break;
398         }
399 
400         ntStatus = UtilWepStatusSet(pAdapter, ioBuffer, inBufLen);
401         break;
402 
403     case TIWLN_802_11_EAP_TYPE_GET:
404         PRINT(DBG_NDIS_OIDS_LOUD, "TIWL: TIWLN_802_11_EAP_TYPE_GET\n");
405         ntStatus = Util802EapTypeGet(pAdapter, ioBuffer, outBufLen);
406         break;
407 
408     case TIWLN_802_11_EAP_TYPE_DRIVER_SET:
409         PRINT(DBG_NDIS_OIDS_LOUD, "TIWL: TIWLN_802_11_EAP_TYPE_DRIVER_SET\n");
410         ntStatus = Util802EapTypeSet(pAdapter, ioBuffer, inBufLen);
411         break;
412 
413         /* WPA2 start */
414 
415     case TIWLN_802_11_PMKID_GET:
416         PRINT(DBG_NDIS_OIDS_LOUD, "TIWL: OID_802_11_PMKID GET\n");
417         ntStatus = Util802PmkidGet(pAdapter, ioBuffer, outBufLen);
418         break;
419 
420     case TIWLN_802_11_PMKID_SET:
421         PRINT(DBG_NDIS_OIDS_LOUD, "TIWL: OID_802_11_PMKID SET\n");
422         ntStatus = Util802PmkidSet(pAdapter, ioBuffer, inBufLen);
423         break;
424 
425     case TIWLN_802_11_CAPABILITY_GET:
426         PRINT(DBG_NDIS_OIDS_LOUD, "TIWL: TIWLN_802_11_CAPABILITY_GET \n");
427         ntStatus = Util802CapabilityGet(pAdapter, ioBuffer, outBufLen);
428         break;
429 
430     case  TIWLN_802_11_AVAILABLE_OPTIONS_GET:
431         PRINT(DBG_NDIS_OIDS_LOUD, "TIWL: TIWLN_802_11_AVAILABLE_OPTIONS_GET \n");
432         ntStatus = Util802FSWAvailableOptionsGet(pAdapter, ioBuffer, outBufLen);
433         break;
434 
435     case  TIWLN_802_11_WPA_OPTIONS_GET:
436         PRINT(DBG_NDIS_OIDS_LOUD, "TIWL: TIWLN_802_11_WPA_OPTIONS_GET\n");
437         ntStatus = Util802FSWOptionsGet(pAdapter, ioBuffer, outBufLen);
438         break;
439 
440     case TIWLN_802_11_WPA_OPTIONS_SET:
441         PRINT(DBG_NDIS_OIDS_LOUD, "TIWL: TIWLN_802_11_WPA_OPTIONS_SET\n");
442         ntStatus = Util802FSWOptionsSet(pAdapter, ioBuffer, inBufLen);
443         break;
444 
445         /* wpa2 - end */
446 
447     case TIWLN_802_11_AUTHENTICATION_MODE_GET:
448         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_AUTHENTICATION_MODE_GET.\n");
449         ntStatus = UtilExtAuthenticationModeGet(pAdapter, ioBuffer, outBufLen);
450         break;
451 
452     case TIWLN_802_11_AUTHENTICATION_MODE_SET:
453         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_AUTHENTICATION_MODE_SET.\n");
454         ntStatus = UtilExtAuthenticationModeSet(pAdapter, ioBuffer, inBufLen);
455         break;
456 
457     case TIWLN_802_11_NUMBER_OF_ANTENNAS:
458         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_NUMBER_OF_ANTENNAS.\n");
459         ntStatus = UtilNumberOfAntennas(pAdapter, ioBuffer, outBufLen);
460         break;
461 
462     case TIWLN_802_11_RX_ANTENNA_SELECTED_GET:
463         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_RX_ANTENNA_SELECTED_GET.\n");
464         ntStatus = UtilRxAntennaGet(pAdapter, ioBuffer, outBufLen);
465         break;
466 
467     case TIWLN_802_11_RX_ANTENNA_SELECTED_SET:
468         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_RX_ANTENNA_SELECTED_SET.\n");
469         ntStatus = UtilRxAntennaSet(pAdapter, ioBuffer, inBufLen);
470         break;
471 
472     case TIWLN_802_11_TX_ANTENNA_SELECTED_GET:
473         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_TX_ANTENNA_SELECTED_GET.\n");
474         ntStatus = UtilTxAntennaGet(pAdapter, ioBuffer, outBufLen);
475         break;
476 
477     case TIWLN_802_11_TX_ANTENNA_SELECTED_SET:
478         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_TX_ANTENNA_SELECTED_SET.\n");
479         ntStatus = UtilTxAntennaSet(pAdapter, ioBuffer, inBufLen);
480         break;
481 
482     case TIWLAN_802_11_ANTENNA_DIVERSITY_PARAM_SET:
483         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLAN_802_11_ANTENNA_DIVERSITY_PARAM_SET.\n");
484         ntStatus = UtilAntennaDivresitySet(pAdapter, ioBuffer, inBufLen);
485         break;
486 
487     case TIWLN_802_11_DESIRED_CHANNEL_GET:
488         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_DESIRED_CHANNEL_GET.\n");
489         ntStatus = UtilDesiredChannelGet(pAdapter, ioBuffer, outBufLen);
490         break;
491 
492     case TIWLN_802_11_DESIRED_CHANNEL_SET:
493         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_DESIRED_CHANNEL_SET.\n");
494         ntStatus = UtilDesiredChannelSet(pAdapter, ioBuffer, inBufLen);
495         break;
496 
497     case TIWLN_802_11_SHORT_PREAMBLE_GET:
498         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SHORT_PREAMBLE_GET.\n");
499         ntStatus = UtilShortPreambleGet(pAdapter, ioBuffer, outBufLen);
500         break;
501 
502     case TIWLN_802_11_SHORT_PREAMBLE_SET:
503         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SHORT_PREAMBLE_SET.\n");
504         ntStatus = UtilShortPreambleSet(pAdapter, ioBuffer, inBufLen);
505         break;
506 
507     case TIWLN_CURRENT_REGDOMAIN_GET:
508         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_CURRENT_REGDOMAIN_GET.\n");
509         ntStatus = UtilCurrentRegDomainGet(pAdapter, ioBuffer, outBufLen);
510         break;
511 
512     case TIWLN_REG_DOMAIN_ENABLE_DISABLE_802_11D:
513         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_ENABLE_DISABLE_802_11D.\n");
514         ntStatus = UtilRegulatoryDomain_enableDisable_802_11d(pAdapter, ioBuffer, inBufLen);
515         break;
516 
517     case TIWLN_REG_DOMAIN_ENABLE_DISABLE_802_11H:
518         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_ENABLE_DISABLE_802_11H.\n");
519         ntStatus = UtilRegulatoryDomain_enableDisable_802_11h(pAdapter, ioBuffer, inBufLen);
520         break;
521 
522     case TIWLN_REG_DOMAIN_GET_802_11D:
523         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_GET_802_11D.\n");
524         ntStatus = UtilRegulatoryDomain_Get_802_11d(pAdapter, ioBuffer, outBufLen);
525         break;
526 
527     case TIWLN_REG_DOMAIN_GET_802_11H:
528         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_GET_802_11D.\n");
529         ntStatus = UtilRegulatoryDomain_Get_802_11h(pAdapter, ioBuffer, outBufLen);
530         break;
531 
532     case TIWLN_REG_DOMAIN_SET_COUNTRY_2_4:
533         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_SET_COUNTRY_2_4.\n");
534         ntStatus = UtilRegulatoryDomain_setCountryIE_2_4(pAdapter, ioBuffer, inBufLen);
535         break;
536 
537     case TIWLN_REG_DOMAIN_GET_COUNTRY_2_4:
538         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_GET_COUNTRY_2_4.\n");
539         ntStatus = UtilRegulatoryDomain_getCountryIE_2_4(pAdapter, ioBuffer, outBufLen);
540         break;
541 
542     case TIWLN_REG_DOMAIN_SET_COUNTRY_5:
543         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_SET_COUNTRY_5.\n");
544         ntStatus = UtilRegulatoryDomain_setCountryIE_5(pAdapter, ioBuffer, inBufLen);
545         break;
546 
547     case TIWLN_REG_DOMAIN_GET_COUNTRY_5:
548         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_GET_COUNTRY_5.\n");
549         ntStatus = UtilRegulatoryDomain_getCountryIE_5(pAdapter, ioBuffer, outBufLen);
550         break;
551 
552     case TIWLN_REG_DOMAIN_SET_DFS_RANGE:
553         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_SET_DFS_RANGE.\n");
554         ntStatus = UtilRegulatoryDomain_setMinMaxDfsChannels(pAdapter, ioBuffer, inBufLen);
555         break;
556 
557     case TIWLN_REG_DOMAIN_GET_DFS_RANGE:
558         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REG_DOMAIN_GET_DFS_RANGE.\n");
559         ntStatus = UtilRegulatoryDomain_getMinMaxDfsChannels(pAdapter, ioBuffer, outBufLen);
560         break;
561 
562     case TIWLN_802_11_SHORT_RETRY_GET:
563         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SHORT_RETRY_GET.\n");
564         ntStatus = UtilShortRetryGet(pAdapter, ioBuffer, outBufLen);
565         break;
566 
567     case TIWLN_802_11_SHORT_RETRY_SET:
568         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SHORT_RETRY_SET.\n");
569         ntStatus = UtilShortRetrySet(pAdapter, ioBuffer, inBufLen);
570         break;
571 
572     case TIWLN_802_11_LONG_RETRY_GET:
573         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_LONG_RETRY_GET.\n");
574         ntStatus = UtilLongRetryGet(pAdapter, ioBuffer, outBufLen);
575         break;
576 
577     case TIWLN_802_11_LONG_RETRY_SET:
578         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_LONG_RETRY_SET.\n");
579         ntStatus = UtilLongRetrySet(pAdapter, ioBuffer, inBufLen);
580         break;
581 
582     case TIWLN_4XACTIVESTATE_GET:
583         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_4XACTIVESTATE_GET.\n");
584         ntStatus = Util4xActiveStateGet(pAdapter, ioBuffer, outBufLen);
585         break;
586 
587     case TIWLN_802_11_DESIRED_SSID_GET:
588             PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_DESIRED_SSID_GET.\n");
589         ntStatus = UtilGetDesiredSSID(pAdapter, ioBuffer, outBufLen);
590         break;
591 
592     case TIWLN_802_11_CHANNEL_GET:
593             PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_CHANNEL_GET.\n");
594         ntStatus = UtilChannelGet(pAdapter, ioBuffer, outBufLen);
595         break;
596 
597     case TIWLN_802_11_DESIRED_INFRASTRUCTURE_MODE:
598         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_DESIRED_INFRASTRUCTURE_MODE.\n");
599         ntStatus = UtilDesiredInfrastructureModeGet(pAdapter, ioBuffer, outBufLen);
600         break;
601 
602     case TIWLN_DRIVER_STATUS_GET:
603         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_DRIVER_STATUS_GET.\n");
604         ntStatus = UtilDriverStatusGet(pAdapter, ioBuffer, outBufLen);
605         break;
606 
607     case TIWLN_DRIVER_STATUS_SET:
608         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_DRIVER_STATUS_SET.\n");
609         ntStatus = UtilDriverStatusSet(pAdapter, ioBuffer, inBufLen);
610         break;
611 
612     case TIWLN_DRIVER_SUSPEND:
613         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_DRIVER_STATUS_SET.\n");
614             UtilDriverSuspend(pAdapter, ioBuffer, inBufLen);
615         break;
616 
617     case TIWLN_IBSS_PROTECTION_GET:
618         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_IBSS_PROTECTION_GET.\n");
619         ntStatus = UtilIbssProtectionGet(pAdapter, ioBuffer, outBufLen);
620         break;
621 
622     case TIWLN_IBSS_PROTECTION_SET:
623         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_IBSS_PROTECTION_GET.\n");
624         ntStatus = UtilIbssProtectionSet(pAdapter, ioBuffer, inBufLen);
625         break;
626 
627     case TIWLN_SHORT_SLOT_GET:
628         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_SHORT_SLOT_GET.\n");
629         ntStatus = UtilShortSlotGet(pAdapter, ioBuffer, outBufLen);
630         break;
631 
632     case TIWLN_SHORT_SLOT_SET:
633         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_SHORT_SLOT_SET.\n");
634         ntStatus = UtilShortSlotSet(pAdapter, ioBuffer, inBufLen);
635         break;
636 
637     case TIWLN_EXT_RATES_IE_GET:
638         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_EXT_RATES_IE_GET.\n");
639         ntStatus = UtilExtRatesIeGet(pAdapter, ioBuffer, outBufLen);
640         break;
641 
642     case TIWLN_EXT_RATES_IE_SET:
643         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_EXT_RATES_IE_SET.\n");
644         ntStatus = UtilExtRatesIeSet(pAdapter, ioBuffer, inBufLen);
645         break;
646 
647     case TIWLN_802_11_REMOVE_KEY:
648         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_REMOVE_KEY\n");
649         ntStatus = UtilRemoveKey(pAdapter, ioBuffer, inBufLen);
650         break;
651 
652     case TIWLN_802_11_ADD_KEY:
653         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_ADD_KEY\n");
654         ntStatus = UtilAddKey(pAdapter, ioBuffer, inBufLen);
655         break;
656 
657     case TIWLN_802_11_MIXED_MODE_SET:
658         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_MIXED_MODE_SET\n");
659         ntStatus = UtilSetMixedMode(pAdapter, ioBuffer, inBufLen);
660         break;
661 
662     case TIWLN_802_11_MIXED_MODE_GET:
663         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_MIXED_MODE_GET\n");
664         ntStatus = UtilGetMixedMode(pAdapter, RSN_MIXED_MODE, ioBuffer, outBufLen);
665 
666         break;
667 #ifdef EXC_MODULE_INCLUDED
668     case TIWLN_802_11_EXC_CONFIGURATION_SET:
669         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_EXC_CONFIGURATION_SET\n");
670         ntStatus = UtilExcConfigurationSet(pAdapter, ioBuffer, inBufLen);
671         break;
672 
673     case TIWLN_802_11_EXC_CONFIGURATION_GET:
674         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_EXC_CONFIGURATION_GET\n");
675         ntStatus = UtilExcConfigurationGet(pAdapter, ioBuffer, outBufLen);
676         break;
677 
678     case TIWLN_802_11_EXC_ROGUE_AP_DETECTED:
679         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_EXC_ROGUE_AP_DETECTED\n");
680         ntStatus = UtilExcRogueApDetectedSet(pAdapter, ioBuffer, inBufLen);
681         break;
682 
683     case    TIWLN_802_11_EXC_REPORT_ROGUE_APS:
684         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_EXC_REPORT_ROGUE_APS\n");
685         ntStatus = UtilExcReportRogueApSet(pAdapter, ioBuffer, inBufLen);
686         break;
687 
688     case    TIWLN_802_11_EXC_CCKM_REQUEST:
689         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_EXC_CCKM_REQUEST\n");
690         ntStatus = UtilExcCckmRequestSet(pAdapter, ioBuffer, inBufLen);
691         break;
692 
693     case    TIWLN_802_11_EXC_CCKM_RESULT:
694         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_EXC_CCKM_RESULT\n");
695         ntStatus = UtilExcCckmResultSet(pAdapter, ioBuffer, inBufLen);
696         break;
697 
698     case    TIWLN_802_11_EXC_NETWORK_EAP_SET:
699         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_EXC_NETWORK_EAP_SET\n");
700         ntStatus = UtilExcNetworkEapSet(pAdapter, ioBuffer, inBufLen);
701         break;
702 
703     case TIWLN_802_11_EXC_NETWORK_EAP_GET:
704         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_EXC_NETWORK_EAP_GET\n");
705         ntStatus = UtilExcNetworkEapGet(pAdapter, ioBuffer, outBufLen);
706         break;
707     case TIWLN_802_11_EXC_AUTH_SUCCESS:
708         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_EXC_AUTH_SUCCESS\n");
709 
710         *outBufLen = UtilExcAuthSuccessSet(pAdapter, ioBuffer, inBufLen);
711 
712         break;
713 /******************** measurement *********************/
714 
715     case TIWLN_802_11_MEASUREMENT_ENABLE_DISABLE_PARAMS_SET:
716         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_MEASUREMENT_MAX_DURATION_PARAMS_SET.\n");
717         ntStatus = UtilMeasurementEnableDisableParamsSet(pAdapter, ioBuffer, inBufLen);
718          break;
719 
720     case TIWLN_802_11_MEASUREMENT_MAX_DURATION_PARAMS_SET:
721         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_MEASUREMENT_MAX_DURATION_PARAMS_SET.\n");
722         ntStatus = UtilMeasurementMaxDurationParamsSet(pAdapter, ioBuffer, inBufLen);
723          break;
724 
725 #else
726 
727     case TIWLN_802_11_EXC_CONFIGURATION_SET:
728     case TIWLN_802_11_EXC_CONFIGURATION_GET:
729     case TIWLN_802_11_EXC_ROGUE_AP_DETECTED:
730     case TIWLN_802_11_EXC_REPORT_ROGUE_APS:
731     case TIWLN_802_11_EXC_CCKM_REQUEST:
732     case TIWLN_802_11_EXC_CCKM_RESULT:
733     case TIWLN_802_11_EXC_NETWORK_EAP_SET:
734     case TIWLN_802_11_EXC_NETWORK_EAP_GET:
735     case TIWLN_802_11_EXC_AUTH_SUCCESS:
736     case TIWLN_802_11_MEASUREMENT_ENABLE_DISABLE_PARAMS_SET:
737     case TIWLN_802_11_MEASUREMENT_MAX_DURATION_PARAMS_SET:
738     PRINT(DBG_IOCTL_LOUD, "...EXC IOCTL NOT Supported.\n");
739     break;
740 
741 #endif /* EXC_MODULE_INCLUDED */
742 
743 /******************** QOS **********************/
744 
745     case TIWLN_802_11_SET_QOS_PARAMS:
746        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SET_QOS_PARAMS.\n");
747        ntStatus = UtilQosSetParams(pAdapter, ioBuffer, inBufLen);
748        break;
749 
750     case TIWLN_802_11_CONFIG_TX_CLASS:
751        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_CONFIG_TX_CLASS.\n");
752        ntStatus = UtilConfigTxClassifier(pAdapter,ioBuffer,inBufLen);
753        break;
754 
755     case TIWLN_802_11_REMOVE_CLSFR_ENTRY:
756        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_REMOVE_CLSFR_ENTRY.\n");
757        ntStatus = UtilRemoveClassifierEntry(pAdapter,ioBuffer,inBufLen);
758        break;
759 
760     case TIWLN_802_11_GET_CLSFR_TYPE:
761          PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_CLSFR_TYPE.\n");
762        ntStatus = UtilGetClsfrType(pAdapter, ioBuffer, outBufLen);
763        break;
764 
765     case TIWLN_802_11_GET_AP_QOS_PARAMS:
766        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_AP_QOS_PARAMS.\n");
767        ntStatus = UtilGetAPQosParams(pAdapter, ioBuffer, outBufLen);
768        break;
769 
770     case TIWLN_802_11_GET_AP_QOS_CAPABILITIES:
771        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_AP_QOS_CAPABILITIES.\n");
772        ntStatus = UtilGetAPQosCapabilities(pAdapter, ioBuffer, outBufLen);
773        break;
774 
775     case TIWLN_802_11_ADD_TSPEC:
776        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_ADD_TSPEC.\n");
777        ntStatus = UtilAddTspec(pAdapter, ioBuffer, inBufLen);
778        break;
779 
780     case TIWLN_802_11_GET_TSPEC_PARAMS:
781        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_TSPEC_PARAMS.\n");
782        ntStatus = UtilGetTspecParams(pAdapter, ioBuffer, outBufLen);
783        break;
784 
785     case TIWLN_802_11_DELETE_TSPEC:
786        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_DELETE_TSPEC.\n");
787        ntStatus = UtilDeleteTspec(pAdapter, ioBuffer, inBufLen);
788        break;
789 
790     case TIWLN_802_11_GET_CURRENT_AC_STATUS:
791        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_CURRENT_AC_STATUS.\n");
792        ntStatus = UtilGetCurrentAcStatus(pAdapter, ioBuffer, outBufLen);
793        break;
794 
795     case TIWLN_802_11_SET_MEDIUM_USAGE_THRESHOLD:
796        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SET_MEDIUM_USAGE_THRESHOLD.\n");
797        ntStatus = UtilSetMediumUsageThreshold(pAdapter, ioBuffer, inBufLen);
798        break;
799 
800     case TIWLN_802_11_SET_PHY_RATE_THRESHOLD:
801        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SET_PHY_RATE_THRESHOLD.\n");
802        ntStatus = UtilSetPhyRateThreshold(pAdapter, ioBuffer, inBufLen);
803        break;
804 
805     case TIWLN_802_11_GET_MEDIUM_USAGE_THRESHOLD:
806        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_MEDIUM_USAGE_THRESHOLD.\n");
807        ntStatus = UtilGetMediumUsageThreshold(pAdapter, ioBuffer, outBufLen);
808        break;
809 
810     case TIWLN_802_11_GET_PHY_RATE_THRESHOLD:
811        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_PHY_RATE_THRESHOLD.\n");
812        ntStatus = UtilGetPhyRateThreshold(pAdapter, ioBuffer, outBufLen);
813        break;
814 
815     case TIWLN_802_11_GET_USER_PRIORITY_OF_STREAM:
816        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_USER_PRIORITY_OF_STREAM.\n");
817        ntStatus = UtilGetUserPriorityOfStream(pAdapter, ioBuffer, outBufLen);
818        break;
819 
820     case TIWLN_802_11_GET_DESIRED_PS_MODE:
821        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_DESIRED_PS_MODE.\n");
822        ntStatus = UtilGetDesiredPsMode(pAdapter, ioBuffer, outBufLen);
823        break;
824 
825     case TIWLN_802_11_POLL_AP_PACKETS:
826       PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POLL_AP_PACKETS.\n");
827        ntStatus = UtilPollApPackets(pAdapter, ioBuffer, inBufLen);
828        break;
829 
830     case TIWLN_802_11_POLL_AP_PACKETS_FROM_AC:
831       PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_POLL_AP_PACKETS_FROM_AC.\n");
832        ntStatus = UtilPollApPacketsFromAC(pAdapter, ioBuffer, inBufLen);
833        break;
834 
835     case TIWLN_802_11_CONFIG_EVENTS_RSSI:
836        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_CONFIG_EVENTS.\n");
837        ntStatus = UtilConfigRSSI(pAdapter, (UINT32) ioBuffer, inBufLen);
838        break;
839 
840     case TIWLN_802_11_GET_DRIVERS_CAPABILITIES:
841        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_DRIVERS_CAPABILITIES.\n");
842        ntStatus = UtilGetDrvCapabilities(pAdapter, ioBuffer, outBufLen);
843        break;
844 
845     case TIWLN_802_11_GET_SELECTED_BSSID_INFO:
846        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_SELECTED_BSSID_INFO.\n");
847        ntStatus = UtilGetSelectedBSSIDInfo(pAdapter, ioBuffer, outBufLen);
848        break;
849 
850     case TIWLN_802_11_GET_PRIMARY_BSSID_INFO:
851        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_PRIMARY_BSSID_INFO.\n");
852        ntStatus = UtilGetPrimaryBSSIDInfo(pAdapter, ioBuffer, outBufLen);
853        break;
854 
855     case TIWLN_802_11_GET_DRIVER_STATE:
856        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_DRIVER_STATE.\n");
857        ntStatus = UtilGetDriverState(pAdapter, ioBuffer, outBufLen);
858        break;
859 
860     case TIWLN_802_11_SET_RX_TIMEOUT:
861        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SET_RX_TIMEOUT.\n");
862        ntStatus = UtilQosSetRxTimeOut(pAdapter, ioBuffer, inBufLen);
863        break;
864 
865     case TIWLN_802_11_SET_DTAG_TO_AC_MAPPING_TABLE:
866        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SET_DTAG_TO_AC_MAPPING_TABLE.\n");
867        ntStatus = UtilSetDTagToAcMappingTable(pAdapter, ioBuffer, inBufLen);
868        break;
869 
870     case TIWLN_802_11_SET_VAD:
871        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SET_VAD.\n");
872        ntStatus = UtilSetVAD(pAdapter, ioBuffer, inBufLen);
873        break;
874 
875     case TIWLN_802_11_GET_VAD:
876        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_GET_VAD.\n");
877        ntStatus = UtilGetVAD(pAdapter, ioBuffer, outBufLen);
878        break;
879 
880 /******************** scan *********************/
881 
882     case TIWLN_802_11_START_APP_SCAN_SET:
883        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_START_APP_SCAN_SET.\n");
884        ntStatus = UtilStartAppScanSet(pAdapter, ioBuffer, inBufLen);
885         break;
886 
887     case TIWLN_802_11_STOP_APP_SCAN_SET:
888        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_STOP_APP_SCAN_SET.\n");
889        ntStatus = UtilStopAppScanSet(pAdapter, ioBuffer, inBufLen);
890         break;
891 
892     case TIWLN_802_11_SCAN_POLICY_PARAM_SET:
893        PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_SCAN_POLICY_PARAM_SET.\n");
894        ntStatus = UtilScanPolicyParamSet(pAdapter, ioBuffer, inBufLen);
895         break;
896 
897     case TIWLN_802_11_SCAN_BSS_LIST_GET:
898         PRINT(DBG_IOCTL_LOUD, "...TIWLN_802_11_SCAN_BSS_LIST_GET.\n");
899        ntStatus = UtilScanBssListGet(pAdapter, ioBuffer, outBufLen);
900         break;
901 
902 /******************** Roaming *********************/
903 
904     case TIWLN_802_11_ROAMING_CONFIG_PARAMS_SET:
905         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_ROAMING_CONFIG_PARAMS_SET.\n");
906         ntStatus = UtilConfigRoamingParamsSet(pAdapter, ioBuffer, inBufLen);
907          break;
908 
909     case TIWLN_802_11_ROAMING_CONFIG_PARAMS_GET:
910         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_ROAMING_CONFIG_PARAMS_GET.\n");
911         ntStatus = UtilConfigRoamingParamsGet(pAdapter, ioBuffer, outBufLen);
912          break;
913 
914 /******************** misc *********************/
915 
916     case TIWLN_HW_READ_REGISTER:
917         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_HW_READ_REGISTER.\n");
918         ntStatus = UtilReadReg(pAdapter, ioBuffer, outBufLen);
919         break;
920 
921     case TIWLN_HW_WRITE_REGISTER:
922         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_HW_WRITE_REGISTER.\n");
923         ntStatus = UtilWriteReg(pAdapter, ioBuffer, inBufLen);
924         break;
925 
926     case TIWLN_802_3_CURRENT_ADDRESS:
927         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_3_CURRENT_ADDRESS.\n");
928         ntStatus = UtilGetMACAddress(pAdapter, ioBuffer, outBufLen);
929         break;
930 
931     case TIWLN_802_11_ASSOCIATION_INFORMATION:
932         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_802_11_ASSOCIATION_INFORMATION.\n");
933         ntStatus = UtilAssociationInfoGet(pAdapter, ioBuffer, outBufLen);
934         break;
935 
936     case TIWLN_IOCTL_OID_QUERY_INFORMATION:
937         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_IOCTL_OID_QUERY_INFORMATION.\n");
938         ntStatus = UtilInfoCodeQueryInformation(pAdapter, (PUCHAR)ioBuffer, outBufLen);
939         break;
940 
941     case TIWLN_IOCTL_OID_SET_INFORMATION:
942         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_IOCTL_OID_SET_INFORMATION.\n");
943         ntStatus = UtilInfoCodeSetInformation(pAdapter, (PUCHAR)ioBuffer, inBufLen);
944         break;
945 
946     case GWSI_GET_INIT_TABLE_COMMAND:
947         PRINT(DBG_IOCTL_LOUD, "...IOCTL GWSI_GET_INIT_TABLE_COMMAND.\n");
948         configMgr_GetInitParams (pAdapter->CoreHalCtx, (UINT8 *) ioBuffer, (UINT16 *) outBufLen);
949         break;
950 
951     case BT_COEXSISTANCE_SET_ENABLE:
952         PRINT(DBG_IOCTL_LOUD, "...IOCTL BT_COEXSISTANCE_SET_ENABLE.\n");
953         ntStatus = UtilBthWlanCoeEnable(pAdapter, (PUCHAR)ioBuffer, inBufLen);
954         break;
955 
956     case BT_COEXSISTANCE_SET_RATE:
957         PRINT(DBG_IOCTL_LOUD, "...IOCTL BT_COEXSISTANCE_SET_RATE.\n");
958         ntStatus = UtilBthWlanCoeRate(pAdapter, (PUCHAR)ioBuffer, inBufLen);
959         break;
960 
961     case BT_COEXSISTANCE_SET_CONFIG:
962         PRINT(DBG_IOCTL_LOUD, "...IOCTL BT_COEXSISTANCE_SET_CONFIG.\n");
963         ntStatus = UtilBthWlanCoeConfig(pAdapter, (PUCHAR)ioBuffer, inBufLen);
964         break;
965 
966     case BT_COEXSISTANCE_GET_STATUS:
967         PRINT(DBG_IOCTL_LOUD, "...IOCTL BT_COEXSISTANCE_GET_STATUS.\n");
968         ntStatus = UtilBthWlanCoeGetStatus(pAdapter, (PUCHAR)ioBuffer, outBufLen);
969         break;
970 
971     case TIWLN_EARLY_WAKEUP_IE_SET:
972         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_EARLY_WAKEUP_IE_SET.\n");
973         ntStatus = UtilEarlyWakeupIeSet(pAdapter, (PUCHAR)ioBuffer, inBufLen);
974         break;
975 
976     case TIWLN_EARLY_WAKEUP_IE_GET:
977         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_EARLY_WAKEUP_IE_GET.\n");
978         ntStatus = UtilEarlyWakeupIeGet(pAdapter, (PUCHAR)ioBuffer, outBufLen);
979         break;
980 
981 #ifdef TI_DBG
982 
983     case TIWLN_GET_DEBUG_FLAG:
984         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_GET_DEBUG_FLAG.\n");
985         *(PULONG)ioBuffer = TiDebugFlag;
986         break;
987 
988     case TIWLN_SET_DEBUG_FLAG:
989         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_SET_DEBUG_FLAG - %#lX.\n", *(PULONG)ioBuffer));
990         TiDebugFlag = *(PULONG)ioBuffer;
991         break;
992 
993     case TIWLN_DISPLAY_STATS:
994         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_DISPLAY_STATS. Code:%lu  Data:%lu\n", *(PULONG)ioBuffer, *(PULONG)((PUCHAR)ioBuffer+4)));
995         debugFunction(pAdapter->CoreHalCtx, *(PULONG)ioBuffer, ((PUCHAR)ioBuffer+4));
996         break;
997 
998     case TIWLN_REPORT_MODULE_GET:
999     case TIWLN_GET_MODULE:
1000         PRINT(DBG_IOCTL_LOUD, "...TIWLN_GET_MODULE\n");
1001         param.paramType = REPORT_MODULE_TABLE_PARAM;
1002         report_getParam(((configMgr_t *)pAdapter->CoreHalCtx)->hReport, &param);
1003 
1004         os_memoryCopy(NULL, ioBuffer, param.content.ModuleTable, sizeof(param.content.ModuleTable));
1005         *outBufLen = sizeof(param.content.ModuleTable);
1006         break;
1007 
1008     case TIWLN_REPORT_MODULE_SET:
1009     case TIWLN_SET_MODULE:
1010         PRINTF(DBG_IOCTL_LOUD, ("...TIWLN_SET_MODULE\n"));
1011         param.paramType = REPORT_MODULE_TABLE_PARAM;
1012         os_memoryCopy(NULL, param.content.ModuleTable, ioBuffer, sizeof(param.content.ModuleTable));
1013 
1014         report_setParam(((configMgr_t *)pAdapter->CoreHalCtx)->hReport, &param);
1015         *outBufLen = 0;
1016         break;
1017 
1018     case TIWLN_REPORT_SEVERITY_SET:
1019     case TIWLN_SET_SEVERITY:
1020         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_SET_SEVERITY - %#lX\n", *(PULONG)ioBuffer));
1021         param.paramType = REPORT_SEVERITY_TABLE_PARAM;
1022         os_memoryCopy(NULL, param.content.SeverityTable, ioBuffer, sizeof(param.content.SeverityTable));
1023 
1024         report_setParam(((configMgr_t *)pAdapter->CoreHalCtx)->hReport, &param);
1025         *outBufLen = 0;
1026         break;
1027 
1028     case TIWLN_REPORT_SEVERITY_GET:
1029     case TIWLN_GET_SEVERITY:
1030         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_GET_SEVERITY (%X)\n",
1031             TIWLN_GET_SEVERITY));
1032         param.paramType = REPORT_SEVERITY_TABLE_PARAM;
1033         report_getParam(((configMgr_t *)pAdapter->CoreHalCtx)->hReport, &param);
1034         os_memoryCopy(NULL, ioBuffer, param.content.SeverityTable, sizeof(param.content.SeverityTable));
1035 
1036         *outBufLen = sizeof(param.content.SeverityTable);
1037         break;
1038 
1039     case TIWLN_REPORT_PPMODE_SET:
1040         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_SET_PPMODE - %#lX\n", *(PULONG)ioBuffer));
1041         param.paramType = REPORT_PPMODE_VALUE_PARAM;
1042         *(PULONG)&param.content = *(PULONG)ioBuffer;
1043         report_setParam(((configMgr_t *)pAdapter->CoreHalCtx)->hReport, &param);
1044         *outBufLen = 0;
1045         break;
1046 
1047    case TIWLN_OS_DBG_STATE_GET:
1048         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_OS_DBG_STATE_GET - %#lX\n", *(PULONG)ioBuffer));
1049         param.paramType = REPORT_OS_DBG_STATE_VALUE_PARAM;
1050         param.content.osDbgState = TiDebugFlag;
1051         *outBufLen = sizeof(param.content.osDbgState);
1052         break;
1053 
1054     case TIWLN_OS_DBG_STATE_SET:
1055         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_OS_DBG_STATE_SET - %#lX\n", *(PULONG)ioBuffer));
1056         param.paramType = REPORT_OS_DBG_STATE_VALUE_PARAM;
1057         *(PULONG)&param.content = *(PULONG)ioBuffer;
1058         TiDebugFlag = param.content.osDbgState;
1059         *outBufLen = 0;
1060         break;
1061 
1062 
1063 #endif
1064     case SET_IPC_EVENT_HANDLE:
1065         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL SET_IPC_EVENT_HANDLE (%X).\n",SET_IPC_EVENT_HANDLE));
1066         *outBufLen = 0;
1067         ntStatus = IPCKernelInit(pAdapter,ioBuffer);
1068 
1069     break;
1070 
1071     case DESTROY_IPC_EVENT_HANDLE:
1072         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL DESTROY_IPC_EVENT_HANDLE (%X).\n",DESTROY_IPC_EVENT_HANDLE));
1073         *outBufLen = 0;
1074 
1075         IPCKernelDeInit(pAdapter);
1076 
1077            /*KeSetEvent (pAdapter->IPC.pRxIPCEvent, 0, FALSE) ;*/
1078            /* KeClearEvent (pAdapter->pRxIPCEvent) ;*/
1079     break;
1080 
1081     case TIWLN_ENABLE_DISABLE_RX_DATA_FILTERS:
1082         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_ENABLE_DISABLE_RX_DATA_FILTERS.\n");
1083         ntStatus = UtilEnableDisableRxDataFilters(pAdapter, ioBuffer, inBufLen);
1084         break;
1085 
1086     case TIWLN_GET_RX_DATA_FILTERS_STATISTICS:
1087         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_GET_RX_DATA_FILTERS_STATISTICS.\n");
1088         *pIoCompleteFlag = FALSE;
1089         ntStatus = UtilGetRxDataFiltersStatistics(pAdapter, ioBuffer, outBufLen);
1090         break;
1091 
1092     case TIWLN_ADD_RX_DATA_FILTER:
1093         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_ADD_RX_DATA_FILTER.\n");
1094         ntStatus = UtilAddRxDataFilter(pAdapter, ioBuffer, inBufLen);
1095         break;
1096 
1097     case TIWLN_REMOVE_RX_DATA_FILTER:
1098         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_REMOVE_RX_DATA_FILTER.\n");
1099         ntStatus = UtilRemoveRxDataFilter(pAdapter, ioBuffer, inBufLen);
1100         break;
1101 
1102     case TIWLN_GET_POWER_CONSUMPTION_STATISTICS:
1103         PRINT(DBG_IOCTL_LOUD, "...IOCTL TIWLN_GET_POWER_CONSUMPTION_STATISTICS.\n");
1104         *pIoCompleteFlag = FALSE;
1105         ntStatus = UtilGetPowerConsumptionStatistics(pAdapter, ioBuffer, outBufLen);
1106         break;
1107 
1108 /* PLT*/
1109     case TIWLN_PLT_WRITE_REGISTER:
1110         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_WRITE_REGISTER (%X).\n", TIWLN_PLT_WRITE_REGISTER));
1111         ntStatus = UtilPltWriteRegister(pAdapter, ioBuffer, inBufLen);
1112         break;
1113 
1114     case TIWLN_PLT_READ_REGISTER:
1115         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_READ_REGISTER (%X).\n", TIWLN_PLT_READ_REGISTER));
1116         *pIoCompleteFlag = FALSE;
1117         ntStatus = UtilPltReadRegister(pAdapter, ioBuffer, outBufLen);
1118         break;
1119 
1120     case TIWLN_PLT_RX_PER_START:
1121         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_RX_PER_START (%X).\n", TIWLN_PLT_RX_PER_START));
1122         ntStatus = UtilPltRxPerStart(pAdapter, ioBuffer, inBufLen);
1123         break;
1124 
1125     case TIWLN_PLT_RX_PER_STOP:
1126         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_RX_PER_STOP (%X).\n", TIWLN_PLT_RX_PER_STOP));
1127         ntStatus = UtilPltRxPerStop(pAdapter, ioBuffer, inBufLen);
1128         break;
1129 
1130     case TIWLN_PLT_RX_PER_CLEAR:
1131         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_RX_PER_CLEAR (%X).\n", TIWLN_PLT_RX_PER_CLEAR));
1132         ntStatus = UtilPltRxPerClear(pAdapter, ioBuffer, inBufLen);
1133         break;
1134 
1135     case TIWLN_PLT_RX_PER_GET_RESULTS:
1136         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_RX_PER_GET_RESULTS (%X).\n", TIWLN_PLT_RX_PER_GET_RESULTS));
1137         *pIoCompleteFlag = FALSE;
1138         ntStatus = UtilPltRxPerGetResults(pAdapter, ioBuffer, outBufLen);
1139         break;
1140 
1141     case TIWLN_PLT_TX_CW:
1142         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_TX_CW (%X).\n", TIWLN_PLT_TX_CW));
1143         ntStatus = UtilPltTxCW(pAdapter, ioBuffer, inBufLen);
1144         break;
1145 
1146     case TIWLN_PLT_TX_CONTINUES:
1147         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_TX_CONTINUES (%X).\n", TIWLN_PLT_TX_CONTINUES));
1148         ntStatus = UtilPltTxContinues(pAdapter, ioBuffer, inBufLen);
1149         break;
1150 
1151     case TIWLN_PLT_TX_STOP:
1152         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_TX_STOP (%X).\n", TIWLN_PLT_TX_STOP));
1153         ntStatus = UtilPltTxStop(pAdapter, ioBuffer, inBufLen);
1154         break;
1155 
1156     case TIWLN_PLT_MIB_WRITE:
1157         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_MIB_WRITE (%X).\n", TIWLN_PLT_MIB_WRITE));
1158         ntStatus = UtilPltWriteMib(pAdapter, ioBuffer, inBufLen);
1159         break;
1160 
1161     case TIWLN_PLT_MIB_READ:
1162         {
1163             PLT_MIB_t* pMib = (PLT_MIB_t*)ioBuffer;
1164             PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_MIB_READ (%X).\n", TIWLN_PLT_MIB_READ));
1165             /* find which MIBs return in the same contects*/
1166             switch(pMib->aMib)
1167             {
1168             /*Sync mode MIBs - reads the MIBs data from the driver and not from the FW */
1169             case PLT_MIB_dot11MaxReceiveLifetime:
1170             case PLT_MIB_ctsToSelf:
1171             case PLT_MIB_arpIpAddressesTable:
1172             case PLT_MIB_dot11GroupAddressesTable:
1173             case PLT_MIB_rxFilter:
1174             case PLT_MIB_templateFrame:
1175             case PLT_MIB_beaconFilterIETable:
1176             case PLT_MIB_txRatePolicy:
1177                 break;
1178 
1179             /*all other MIBs are Async mode MIBs - reads the MIBs data from the FW */
1180             default:
1181                 *pIoCompleteFlag = FALSE;
1182             }
1183             ntStatus = UtilPltReadMib(pAdapter, ioBuffer, outBufLen, inBufLen);
1184 
1185         }
1186         break;
1187 
1188     case TIWLN_PLT_RX_TX_CAL:
1189         *pIoCompleteFlag = FALSE;
1190         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_RX_TX_CAL (%#lX).\n", ioControlCode));
1191         ntStatus = UtilPltRxTxCal(pAdapter, ioBuffer, outBufLen, inBufLen);
1192         break;
1193 
1194     case TIWLN_PLT_RX_CAL:
1195         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_RX_CAL (%#lX).\n", ioControlCode));
1196         ntStatus = UtilPltRxCal(pAdapter, ioBuffer, outBufLen, inBufLen);
1197         break;
1198 
1199     case TIWLN_PLT_RX_CAL_RESULT:
1200         PRINTF(DBG_IOCTL_LOUD, ("...IOCTL TIWLN_PLT_RX_CAL_RESULT (%#lX).\n", ioControlCode));
1201         ntStatus = utilRxCalibrationStatus(pAdapter, ioBuffer,outBufLen, inBufLen);
1202         break;
1203 
1204     #ifdef _WINDOWS
1205     #endif
1206 
1207     default:
1208         PRINTF(DBG_IOCTL_ERROR, ("...UNKNOWN IOCTL: %#lX\n", ioControlCode));
1209         ntStatus = (NTSTATUS)STATUS_SUCCESS;
1210 
1211     }
1212 
1213     // os_protectUnlock(pAdapter, pAdapter->SystemProtect); /* Bug. Replaced with the line below. -- MCS00035801 */
1214     /* Dm: os_protectUnlock( ((configMgr_t  *)(pAdapter->CoreHalCtx))->hOs, pAdapter->SystemProtect); */
1215 
1216     return ntStatus;
1217 }
1218