Detect drive letter of SD card hardware
Is there a way to programatically detect the driver le开发者_如何学编程tter of an SD card(s) on Windows? Does the method support internal and external SD card hardware? Thank you for your time.
You can try GetLogicalDriveStrings to get the drive letters and then use GetDriveType to see, whether a drive is removable or not. Then you can get more device information like this (example is for cd-rom but should show you the idea):
//handle to the drive to be examined
HANDLE hDevice = CreateFile(TEXT("\\\\.\\G:"), //Drive to open
GENERIC_READ|GENERIC_WRITE, //Access to the drive
FILE_SHARE_READ|FILE_SHARE_WRITE, //Share mode
NULL, //Security
OPEN_EXISTING,0, // no file attributes
NULL);
if (hDevice == INVALID_HANDLE_VALUE) return 0;
CDROM_TOC val; // table of contents for a generic CDROM
DWORD nBytesReturned;
BOOL bResult= DeviceIoControl(
hDevice,
IOCTL_CDROM_READ_TOC,//operation to perform
&val, sizeof(val),//no input buffer
&val, sizeof(val),//output buffer
&nBytesReturned,//#bytes returned
(LPOVERLAPPED) NULL);//synchronous I/O
CloseHandle(hDevice);
精彩评论