title: Detecting SD Card drives
body: <p>My program needs to find out SD Cards among all local drives. One can easily identify removable drives (using <code>GetLogicalDrivesStrings()</code> and <code>GetDriveType()</code> ) but knowing which ones are truly SD cards seems harder.</p>
  
  <p>There are quite a few questions (including <a href="https://stackoverflow.com/q/31559121/12379">here</a>, <a href="https://stackoverflow.com/q/2453127/12379">here</a>, <a href="https://stackoverflow.com/q/27131027/12379">here</a> and <a href="https://stackoverflow.com/q/3462264/12379">here</a>) but no complete answer (many focus on USB). Some say it is impossible to distinguish SD Cards from USB, however Windows Explorer displays different drive icons for SD cards (at least in Windows 7) hence it does distinguish which is which.</p>
  
  <p>Extra bonus for code NOT based on WMI since my program is still using native Win32/MFC! Can some <code>DeviceIoControl()</code> properties help? Now, if someone has a C#/.NET solution, I'd still happily read it!</p>