40NBT SDK: Does GetBSSIDList start a scan and then return the result or does it just return a list that was scanned before?

Answer

1. The documentation does not mention whether this API starts the scan and then returns the result or it just returns a list that was scanned before. Which is the case? [Laird]: This API initiates a scan AND returns a list of the updated BSSIDs. 2. If this function does the scanning then: ? a. How do I know if the scanning is started and running? ?? [Laird]: This is a blocking call, so once it is made the scan has begun and scanning is complete once this function returns. ? b. How can I set the timeout for the scanning? ?? [Laird]: The timeout is fixed and cannot be changed. ? c. How do we know when the scanning is done? ?? [Laird]: When this function returns then scanning is complete. ? d. Is this call blocking or non-blocking? ?? [Laird]: This is a blocking call. 3. If this function does not do the scanning and only returns the list discovered before, then how can I initiate scanning? Is there another function that does the scanning? [Laird]: We recommend putting this scan call on a worker thread to prevent any blocking for UI. A snippet of the code is below: int numBufEntries = 50; SDC_802_11_BSSID_LIST_EX list[50]; // Make call to tell driver to scan and give us back the scan list. SDCERR err = GetBSSIDList( &list[0], &numBufEntries); // Loop through all SSIDs in the scan list. for(ULONG i =0; issid; }