Blog: Bluetooth

For several months, I dealt with the occasional task of having to restart my laptop (Windows 8.1) because the memory usage would get close to 100%, even with no apps running. There were no processes in Task Manager indicating high memory usage, so I suspected I had a memory leak in a faulty driver.
 
I first ran rammap.exe from Microsoft Sysinternals (https://technet.microsoft.com/en-us/sysinternals/bb545021.aspx). This tool showed that the non-paged pool memory usage was very high. But this didn’t tell me what process was causing the leak.

Next I downloaded and installed the Windows Driver Kit 10 from Microsoft (https://msdn.microsoft.com/en-us/windows/hardware/dn913721.aspx). This kit supports Windows 7 through Windows 10. I had to reboot to complete the install then wait until my system was running low on memory before continuing my diagnosis. Once I noticed I was low on memory again, I ran "poolmon –b –p" from C:\Program Files (x86)\Windows Kits\10\Tools\x64. The –p switch enables using Non-paged and Paged pool memory  and the –b switch sorts descending by bytes. At the top of my list was the tag "AVDT".

So how do you figure out what the tag is referring to? I opened an admin command prompt and entered "findstr /s AVDT *.sys". This searched all *.sys files (most driver files are *.sys) in all subdirectories (/s) on the C: drive for the string "AVDT". This returned a screen full of mostly non-readable text which was the contents of *.sys files containing the string "AVDT". It was fairly easy to see a path "\Program Files\WIDCOMM\Bluetooth Software\bin\btwavdt.sys". Looking at the properties of the file indicated what was obvious from the path, it was related to Bluetooth.
 
Whenever I would connect my iPhone via Bluetooth to my laptop and play music (in order to use my external speakers), the driver would eat up non-paged pool memory to the "tune" of 1 MB every 5 seconds! By opening Task Manager and viewing Memory on the Performance tab, I could literally watch the consumption of non-paged pool memory increase with every measure. Just having the phone connected via Bluetooth didn’t cause this, only when music was playing. At a rate of 1 MB every 5 seconds, it consumed about 2.8 GB of memory to listen to music for half of the day!
 
I searched to find a solution to this bug but did not not find one. So until I can get an updated driver, I won’t listen to music from my phone on my PC via Bluetooth. Or if I do, I know I only have a few hours before a reboot is needed.


 

I use a Bluetooth keyboard and mouse under Windows 7 (64-bit) that started to hang from time to time after I began using Windows 7.  I found that if I turned the BT radio off then back on it would work fine.  Sometimes it would hang after I stopped using the keyboard or mouse for just a few seconds.  Sometimes it was after I hadn't used it for several minutes.  Regardless, I couldn't see any relationship to how long it hadn't been used and when it would hang.

I found if I went into Device Manager > Bluetooth Radios and opened the properties to ThinkPad Bluetooth 2.1 with Enhanced Data Rate and then unchecked the "Allow the computer to turn off this device to save power" option, the problem went away. [more]


 

Initial symptom:  After pairing an iPhone using Bluetooth, Windows 7 would show the phone icon with a yellow exclamation point stating it could not find a driver for Bluetooth Peripheral Device. 

To fix this and get tethering to work over Bluetooth, go to the properties of the phone in the Bluetooth devices and click on Services tab.  Uncheck “Wireless iAP” (wireless internet access point).  Windows will stop saying that it needs a driver and you can right click on the phone and select “connect using -> access point”.