VOID Sta11StopStation( __in PSTATION pStation, __in NDIS_HALT_ACTION HaltAction ) { UNREFERENCED_PARAMETER(HaltAction); // Periodic scan StaStopPeriodicScan(pStation); // // Cleanup all the connection state // StaResetConnection(pStation, FALSE); // Cleanup the BSS list Sta11FlushBSSList(pStation); MPVERIFY(IsListEmpty(&(pStation->BSSList.List))); // Cleanup station configuration StaInitializeStationConfig(pStation); // Cleanup the AdHoc station list StaResetAdHocStaInfo(pStation, TRUE); }
VOID Sta11ResetStep1( __in PSTATION pStation, __in MP_RESET_TYPE ResetType ) { UNREFERENCED_PARAMETER(ResetType); MP_SET_FLAG(pStation, STA_RESET_IN_PROGRESS); // // Pause the beaconing // Hw11StopAdHoc(pStation->pNic); // Stop periodic scan (must call before stopping the // connection, since a periodic scan can start // off the association process) StaStopPeriodicScan(pStation); // Cleanup connection context StaResetConnection(pStation, TRUE); // Reset the state we had maintained about for roaming StaResetRoamState(pStation); // Reset the AdHoc station Info but do not clear AdHoc station list. StaResetAdHocStaInfo(pStation, FALSE); // Reset configuration (including resetting cipher and key on hardware) StaResetStationConfig(pStation); // We dont clear the BSS list on a reset // Clears PMKID cache pStation->PMKIDCache.CheckingTime = 0; pStation->PMKIDCache.Count = 0; pStation->Statistics.ullMcastWEPExcludedCount = 0; pStation->Statistics.ullUcastWEPExcludedCount = 0; }
VOID Sta11TerminatePort( _In_ PMP_PORT Port ) { PMP_EXTSTA_PORT extStaPort = MP_GET_STA_PORT(Port); // // We should have been paused and have already // stopped periodic scanning. Ensure that that is the case // MPASSERT(STA_TEST_SCAN_FLAG(extStaPort, STA_STOP_PERIODIC_SCAN)); // // Cleanup all the connection state // StaResetConnection(extStaPort, FALSE); // Cleanup station configuration StaInitializeStationConfig(extStaPort); // Cleanup the AdHoc station list StaResetAdHocStaInfo(extStaPort, TRUE); }