使用WIN API函数实现
#include <iostream>
#include <vector>
#include <string>
#include <Windows.h>
#include <atlstr.h>
using namespace std;
#define MAX_DRIVER_STRING_LENGHT MAX_PATH
void getVidPid(wchar_t volNum)
{
wchar_t szDrvName[] = L"\\\\.\\A:";
szDrvName[4] = volNum;
HANDLE hDevice = NULL;
try
{
hDevice = CreateFile(szDrvName, GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);
}
catch (...)
{
//创建设备文件失败CloseHandle(hDevice);
return;
}
PSTORAGE_DEVICE_DESCRIPTOR pDevDesc;
STORAGE_PROPERTY_QUERY Query;
DWORD dwOutBytes = 0;
BOOL bResult;
pDevDesc = (PSTORAGE_DEVICE_DESCRIPTOR)new BYTE[sizeof(STORAGE_DEVICE_DESCRIPTOR) + 512 - 1];
pDevDesc->Size = sizeof(STORAGE_DEVICE_DESCRIPTOR) + 512 - 1;
char buffer [1000] = {0};
memset ((void *) & Query,