谁能给我提供一个使用SetupDiGetDeviceProperty<的例子/code> ?
Can anybody provide me with an example of using SetupDiGetDeviceProperty
?
以下代码
#include <windows.h>
#include <devguid.h> // for GUID_DEVCLASS_CDROM etc
#include <setupapi.h>
#include <cfgmgr32.h> // for MAX_DEVICE_ID_LEN, CM_Get_Parent and CM_Get_Device_ID
#define INITGUID
#include <tchar.h>
#include <stdio.h>
//#include "c:WinDDK7600.16385.1incapidevpkey.h"
// include DEVPKEY_Device_BusReportedDeviceDesc from WinDDK7600.16385.1incapidevpropdef.h
#ifdef DEFINE_DEVPROPKEY
#undef DEFINE_DEVPROPKEY
#endif
#ifdef INITGUID
#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const DEVPROPKEY DECLSPEC_SELECTANY name = { { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }, pid }
#else
#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) EXTERN_C const DEVPROPKEY name
#endif // INITGUID
// include DEVPKEY_Device_BusReportedDeviceDesc from WinDDK7600.16385.1incapidevpkey.h
DEFINE_DEVPROPKEY(DEVPKEY_Device_BusReportedDeviceDesc, 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 4); // DEVPROP_TYPE_STRING
DEFINE_DEVPROPKEY(DEVPKEY_Device_ContainerId, 0x8c7ed206, 0x3f8a, 0x4827, 0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c, 2); // DEVPROP_TYPE_GUID
DEFINE_DEVPROPKEY(DEVPKEY_Device_FriendlyName, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14); // DEVPROP_TYPE_STRING
DEFINE_DEVPROPKEY(DEVPKEY_DeviceDisplay_Category, 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 0x5a); // DEVPROP_TYPE_STRING_LIST
DEFINE_DEVPROPKEY(DEVPKEY_Device_LocationInfo, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 15); // DEVPROP_TYPE_STRING
DEFINE_DEVPROPKEY(DEVPKEY_Device_Manufacturer, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 13); // DEVPROP_TYPE_STRING
DEFINE_DEVPROPKEY(DEVPKEY_Device_SecuritySDS, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 26); // DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING
#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
#pragma comment (lib, "setupapi.lib")
typedef BOOL (WINAPI *FN_SetupDiGetDevicePropertyW)(
__in HDEVINFO DeviceInfoSet,
__in PSP_DEVINFO_DATA DeviceInfoData,
__in const DEVPROPKEY *PropertyKey,
__out DEVPROPTYPE *PropertyType,
__out_opt PBYTE PropertyBuffer,
__in DWORD PropertyBufferSize,
__out_opt PDWORD RequiredSize,
__in DWORD Flags
);
// List all USB devices with some additional information
void ListDevices (CONST GUID *pClassGuid, LPCTSTR pszEnumerator)
{
unsigned i, j;
DWORD dwSize, dwPropertyRegDataType;
DEVPROPTYPE ulPropertyType;
CONFIGRET status;
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
const static LPCTSTR arPrefix[3] = {TEXT("VID_"), TEXT("PID_"), TEXT("MI_")};
TCHAR szDeviceInstanceID [MAX_DEVICE_ID_LEN];
TCHAR szDesc[1024], szHardwareIDs[4096];
WCHAR szBuffer[4096];
LPTSTR pszToken, pszNextToken;
TCHAR szVid[MAX_DEVICE_ID_LEN], szPid[MAX_DEVICE_ID_LEN], szMi[MAX_DEVICE_ID_LEN];
FN_SetupDiGetDevicePropertyW fn_SetupDiGetDevicePropertyW = (FN_SetupDiGetDevicePropertyW)
GetProcAddress (GetModuleHandle (TEXT("Setupapi.dll")), "SetupDiGetDevicePropertyW");
// List all connected USB devices
hDevInfo = SetupDiGetClassDevs (pClassGuid, pszEnumerator, NULL,
pClassGuid != NULL ? DIGCF_PRESENT: DIGCF_ALLCLASSES | DIGCF_PRESENT);
if (hDevInfo == INVALID_HANDLE_VALUE)
return;
// Find the ones that are driverless
for (i = 0; ; i++) {
DeviceInfoData.cbSize = sizeof (DeviceInfoData);
if (!SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData))
break;
status = CM_Get_Device_ID(DeviceInfoData.DevInst, szDeviceInstanceID , MAX_PATH, 0);
if (status != CR_SUCCESS)
continue;
// Display device instance ID
_tprintf (TEXT("%s
"), szDeviceInstanceID );
if (SetupDiGetDeviceRegistryProperty (hDevInfo, &DeviceInfoData, SPDRP_DEVICEDESC,
&dwPropertyRegDataType, (BYTE*)szDesc,
sizeof(szDesc), // The size, in bytes
&dwSize))
_tprintf (TEXT(" Device Description: "%s"
"), szDesc);
if (SetupDiGetDeviceRegistryProperty (hDevInfo, &DeviceInfoData, SPDRP_HARDWAREID,
&dwPropertyRegDataType, (BYTE*)szHardwareIDs,
sizeof(szHardwareIDs), // The size, in bytes
&dwSize)) {
LPCTSTR pszId;
_tprintf (TEXT(" Hardware IDs:
"));
for (pszId=szHardwareIDs;
*pszId != TEXT(' ') && pszId + dwSize/sizeof(TCHAR) <= szHardwareIDs + ARRAYSIZE(szHardwareIDs);
pszId += lstrlen(pszId)+1) {
_tprintf (TEXT(" "%s"
"), pszId);
}
}
// Retreive the device description as reported by the device itself
// On Vista and earlier, we can use only SPDRP_DEVICEDESC
// On Windows 7, the information we want ("Bus reported device description") is
// accessed through DEVPKEY_Device_BusReportedDeviceDesc
if (fn_SetupDiGetDevicePropertyW && fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_BusReportedDeviceDesc,
&ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) {
if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_BusReportedDeviceDesc,
&ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0))
_tprintf (TEXT(" Bus Reported Device Description: "%ls"
"), szBuffer);
if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_Manufacturer,
&ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) {
_tprintf (TEXT(" Device Manufacturer: "%ls"
"), szBuffer);
}
if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_FriendlyName,
&ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) {
_tprintf (TEXT(" Device Friendly Name: "%ls"
"), szBuffer);
}
if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_LocationInfo,
&ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) {
_tprintf (TEXT(" Device Location Info: "%ls"
"), szBuffer);
}
if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_SecuritySDS,
&ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0)) {
// See Security Descriptor Definition Language on MSDN
// (http://msdn.microsoft.com/en-us/library/windows/desktop/aa379567(v=vs.85).aspx)
_tprintf (TEXT(" Device Security Descriptor String: "%ls"
"), szBuffer);
}
if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_Device_ContainerId,
&ulPropertyType, (BYTE*)szDesc, sizeof(szDesc), &dwSize, 0)) {
StringFromGUID2((REFGUID)szDesc, szBuffer, ARRAY_SIZE(szBuffer));
_tprintf (TEXT(" ContainerId: "%ls"
"), szBuffer);
}
if (fn_SetupDiGetDevicePropertyW (hDevInfo, &DeviceInfoData, &DEVPKEY_DeviceDisplay_Category,
&ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0))
_tprintf (TEXT(" Device Display Category: "%ls"
"), szBuffer);
}
pszToken = _tcstok_s (szDeviceInstanceID , TEXT("\#&"), &pszNextToken);
while(pszToken != NULL) {
szVid[0] = TEXT(' ');
szPid[0] = TEXT(' ');
szMi[0] = TEXT(' ');
for (j = 0; j < 3; j++) {
if (_tcsncmp(pszToken, arPrefix[j], lstrlen(arPrefix[j])) == 0) {
switch(j) {
case 0:
_tcscpy_s(szVid, ARRAY_SIZE(szVid), pszToken);
break;
case 1:
_tcscpy_s(szPid, ARRAY_SIZE(szPid), pszToken);
break;
case 2:
_tcscpy_s(szMi, ARRAY_SIZE(szMi), pszToken);
break;
default:
break;
}
}
}
if (szVid[0] != TEXT(' '))
_tprintf (TEXT(" vid: "%s"
"), szVid);
if (szPid[0] != TEXT(' '))
_tprintf (TEXT(" pid: "%s"
"), szPid);
if (szMi[0] != TEXT(' '))
_tprintf (TEXT(" mi: "%s"
"), szMi);
pszToken = _tcstok_s (NULL, TEXT("\#&"), &pszNextToken);
}
}
return;
}
int _tmain()
{
// List all connected USB devices
_tprintf (TEXT("---------------
"));
_tprintf (TEXT("- USB devices -
"));
_tprintf (TEXT("---------------
"));
ListDevices(NULL, TEXT("USB"));
_tprintf (TEXT("
"));
_tprintf (TEXT("-------------------
"));
_tprintf (TEXT("- USBSTOR devices -
"));
_tprintf (TEXT("-------------------
"));
ListDevices(NULL, TEXT("USBSTOR"));
_tprintf (TEXT("
"));
_tprintf (TEXT("--------------
"));
_tprintf (TEXT("- SD devices -
"));
_tprintf (TEXT("--------------
"));
ListDevices(NULL, TEXT("SD"));
//_tprintf (TEXT("
"));
//ListDevices(&GUID_DEVCLASS_USB, NULL);
//_tprintf (TEXT("
"));
_tprintf (TEXT("
"));
_tprintf (TEXT("-----------
"));
_tprintf (TEXT("- Volumes -
"));
_tprintf (TEXT("-----------
"));
//ListDevices(NULL, TEXT("STORAGE\VOLUME"));
//_tprintf (TEXT("
"));
ListDevices(&GUID_DEVCLASS_VOLUME, NULL);
_tprintf (TEXT("
"));
_tprintf (TEXT("----------------------------
"));
_tprintf (TEXT("- devices with disk drives -
"));
_tprintf (TEXT("----------------------------
"));
ListDevices(&GUID_DEVCLASS_DISKDRIVE, NULL);
return 0;
}
在我的 Windows 7 计算机上产生以下输出
produces the following output on my Windows 7 computer
---------------
- USB devices -
---------------
USBROOT_HUB204&1C1548F&0
Device Description: "USB Root Hub"
Hardware IDs:
"USBROOT_HUB20&VID8086&PID3B3C&REV0006"
"USBROOT_HUB20&VID8086&PID3B3C"
"USBROOT_HUB20"
USBROOT_HUB204&2851D18A&0
Device Description: "USB Root Hub"
Hardware IDs:
"USBROOT_HUB20&VID8086&PID3B34&REV0006"
"USBROOT_HUB20&VID8086&PID3B34"
"USBROOT_HUB20"
USBVID_046D&PID_C52B6&32FEB3AB&0&2
Device Description: "USB Composite Device"
Hardware IDs:
"USBVID_046D&PID_C52B&REV_1201"
"USBVID_046D&PID_C52B"
Bus Reported Device Description: "USB Receiver"
Device Manufacturer: "(Standard USB Host Controller)"
Device Location Info: "Port_#0002.Hub_#0003"
ContainerId: "{AB5F3BBF-21FC-11E2-9436-70F3954A2325}"
vid: "VID_046D"
pid: "PID_C52B"
USBVID_046D&PID_C52B&MI_007&33519F3A&0&0000
Device Description: "USB Input Device (Logitech Download Assistant)"
Hardware IDs:
"USBVID_046D&PID_C52B&REV_1201&MI_00"
"USBVID_046D&PID_C52B&MI_00"
Bus Reported Device Description: "USB Receiver"
Device Manufacturer: "Logitech (x64)"
Device Location Info: "0000.001a.0000.001.002.000.000.000.000"
ContainerId: "{AB5F3BBF-21FC-11E2-9436-70F3954A2325}"
vid: "VID_046D"
pid: "PID_C52B"
mi: "MI_00"
USBVID_046D&PID_C52B&MI_017&33519F3A&0&0001
Device Description: "USB Input Device"
Hardware IDs:
"USBVID_046D&PID_C52B&REV_1201&MI_01"
"USBVID_046D&PID_C52B&MI_01"
Bus Reported Device Description: "USB Receiver"
Device Manufacturer: "(Standard system devices)"
Device Location Info: "0000.001a.0000.001.002.000.000.000.000"
ContainerId: "{AB5F3BBF-21FC-11E2-9436-70F3954A2325}"
vid: "VID_046D"
pid: "PID_C52B"
mi: "MI_01"
USBVID_046D&PID_C52B&MI_027&33519F3A&0&0002
Device Description: "Logitech Unifying USB receiver"
Hardware IDs:
"USBVID_046D&PID_C52B&REV_1201&MI_02"
"USBVID_046D&PID_C52B&MI_02"
Bus Reported Device Description: "USB Receiver"
Device Manufacturer: "Logitech"
Device Location Info: "0000.001a.0000.001.002.000.000.000.000"
ContainerId: "{AB5F3BBF-21FC-11E2-9436-70F3954A2325}"
vid: "VID_046D"
pid: "PID_C52B"
mi: "MI_02"
USBVID_05C6&PID_92056&7A6FBD7&0&4
Device Description: "Qualcomm Gobi 2000 USB Composite Device 9205"
Hardware IDs:
"USBVID_05C6&PID_9205&REV_0002"
"USBVID_05C6&PID_9205"
Bus Reported Device Description: "Qualcomm Gobi 2000"
Device Manufacturer: "Qualcomm Incorporated"
Device Location Info: "Port_#0004.Hub_#0004"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
vid: "VID_05C6"
pid: "PID_9205"
USBVID_05C6&PID_9205&MI_007&210D4D2D&1&0000
Device Description: "Qualcomm Gobi 2000 HS-USB Mobile Broadband Device 9205"
Hardware IDs:
"USBVID_05C6&PID_9205&REV_0002&MI_00"
"USBVID_05C6&PID_9205&MI_00"
Bus Reported Device Description: "Qualcomm Gobi 2000"
Device Manufacturer: "Qualcomm Incorporated"
Device Location Info: "0000.001d.0000.001.004.000.000.000.000"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
vid: "VID_05C6"
pid: "PID_9205"
mi: "MI_00"
USBVID_05C6&PID_9205&MI_017&210D4D2D&1&0001
Device Description: "Qualcomm Gobi 2000 HS-USB Diagnostics 9205"
Hardware IDs:
"USBVID_05C6&PID_9205&REV_0002&MI_01"
"USBVID_05C6&PID_9205&MI_01"
Bus Reported Device Description: "Qualcomm Gobi 2000"
Device Manufacturer: "Qualcomm Incorporated"
Device Friendly Name: "Qualcomm Gobi 2000 HS-USB Diagnostics 9205 (COM6)"
Device Location Info: "0000.001d.0000.001.004.000.000.000.000"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
vid: "VID_05C6"
pid: "PID_9205"
mi: "MI_01"
USBVID_05C6&PID_9205&MI_027&210D4D2D&1&0002
Device Description: "Qualcomm Gobi 2000 HS-USB Modem 9205"
Hardware IDs:
"USBVID_05C6&PID_9205&REV_0002&MI_02"
"USBVID_05C6&PID_9205&MI_02"
Bus Reported Device Description: "Qualcomm Gobi 2000"
Device Manufacturer: "Qualcomm Incorporated"
Device Friendly Name: "Qualcomm Gobi 2000 HS-USB Modem 9205"
Device Location Info: "0000.001d.0000.001.004.000.000.000.000"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
vid: "VID_05C6"
pid: "PID_9205"
mi: "MI_02"
USBVID_05C6&PID_9205&MI_037&210D4D2D&1&0003
Device Description: "Qualcomm Gobi 2000 HS-USB NMEA 9205"
Hardware IDs:
"USBVID_05C6&PID_9205&REV_0002&MI_03"
"USBVID_05C6&PID_9205&MI_03"
Bus Reported Device Description: "Qualcomm Gobi 2000"
Device Manufacturer: "Qualcomm Incorporated"
Device Friendly Name: "Qualcomm Gobi 2000 HS-USB NMEA 9205 (COM7)"
Device Location Info: "0000.001d.0000.001.004.000.000.000.000"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
vid: "VID_05C6"
pid: "PID_9205"
mi: "MI_03"
USBVID_0781&PID_7108 0000000000000031753
Device Description: "USB Mass Storage Device"
Hardware IDs:
"USBVid_0781&Pid_7108&Rev_2000"
"USBVid_0781&Pid_7108"
vid: "VID_0781"
pid: "PID_7108"
USBVID_0930&PID_6545 0D0C9CCDF49EBC06000806C
Device Description: "USB Mass Storage Device"
Hardware IDs:
"USBVid_0930&Pid_6545&Rev_0100"
"USBVid_0930&Pid_6545"
vid: "VID_0930"
pid: "PID_6545"
USBVID_0A5C&PID_217F70F3954A2325
Device Description: "ThinkPad Bluetooth 3.0"
Hardware IDs:
"USBVID_0A5C&PID_217F&REV_0360"
"USBVID_0A5C&PID_217F"
Bus Reported Device Description: "Broadcom Bluetooth Device"
Device Manufacturer: "Broadcom"
Device Location Info: "Port_#0004.Hub_#0003"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
vid: "VID_0A5C"
pid: "PID_217F"
USBVID_147E&PID_20166&32FEB3AB&0&3
Device Description: "TouchChip Fingerprint Coprocessor (WBF advanced mode)"
Hardware IDs:
"USBVID_147E&PID_2016&REV_0002"
"USBVID_147E&PID_2016"
Bus Reported Device Description: "Biometric Coprocessor"
Device Manufacturer: "AuthenTec"
Device Location Info: "Port_#0003.Hub_#0003"
Device Security Descriptor String: "D:P(A;;GA;;;BA)(A;;GA;;;SY)"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
vid: "VID_147E"
pid: "PID_2016"
USBVID_17EF&PID_480F6&32FEB3AB&0&6
Device Description: "USB Composite Device"
Hardware IDs:
"USBVID_17EF&PID_480F&REV_2345"
"USBVID_17EF&PID_480F"
Bus Reported Device Description: "Integrated Camera"
Device Manufacturer: "(Standard USB Host Controller)"
Device Location Info: "Port_#0006.Hub_#0003"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
vid: "VID_17EF"
pid: "PID_480F"
USBVID_17EF&PID_480F&MI_007&137E78B0&0&0000
Device Description: "Integrated Camera"
Hardware IDs:
"USBVID_17EF&PID_480F&REV_2345&MI_00"
"USBVID_17EF&PID_480F&MI_00"
Bus Reported Device Description: "Integrated Camera"
Device Manufacturer: "Ricoh"
Device Friendly Name: "Integrated Camera"
Device Location Info: "0000.001a.0000.001.006.000.000.000.000"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
Device Display Category: "Imaging.Webcam"
vid: "VID_17EF"
pid: "PID_480F"
mi: "MI_00"
USBVID_8087&PID_00205&15BBD570&0&1
Device Description: "Generic USB Hub"
Hardware IDs:
"USBVID_8087&PID_0020&REV_0000"
"USBVID_8087&PID_0020"
vid: "VID_8087"
pid: "PID_0020"
USBVID_8087&PID_00205&29432BF7&0&1
Device Description: "Generic USB Hub"
Hardware IDs:
"USBVID_8087&PID_0020&REV_0000"
"USBVID_8087&PID_0020"
vid: "VID_8087"
pid: "PID_0020"
-------------------
- USBSTOR devices -
-------------------
USBSTORDISK&VEN_KINGSTON&PROD_DATATRAVELER_108&REV_PMAP 0D0C9CCDF49EBC06000806C&0
Device Description: "Disk drive"
Hardware IDs:
"USBSTORDiskKingstonDataTraveler_108PMAP"
"USBSTORDiskKingstonDataTraveler_108"
"USBSTORDiskKingston"
"USBSTORKingstonDataTraveler_108P"
"KingstonDataTraveler_108P"
"USBSTORGenDisk"
"GenDisk"
Bus Reported Device Description: "Kingston DataTraveler 108 USB Device"
Device Manufacturer: "(Standard disk drives)"
Device Friendly Name: "Kingston DataTraveler 108 USB Device"
ContainerId: "{D9CC9C62-4C1D-5CC2-953C-9B0E27AB05E0}"
USBSTORDISK&VEN_SANDISK&PROD_CRUZER_TITANIUM&REV_2000 0000000000000031753&0
Device Description: "Disk drive"
Hardware IDs:
"USBSTORDiskSanDisk_Cruzer_Titanium_2000"
"USBSTORDiskSanDisk_Cruzer_Titanium_"
"USBSTORDiskSanDisk_"
"USBSTORSanDisk_Cruzer_Titanium_2"
"SanDisk_Cruzer_Titanium_2"
"USBSTORGenDisk"
"GenDisk"
Bus Reported Device Description: "SanDisk Cruzer Titanium USB Device"
Device Manufacturer: "(Standard disk drives)"
Device Friendly Name: "SanDisk Cruzer Titanium USB Device"
ContainerId: "{DB834D8A-6F58-11E2-AA64-70F3954A2325}"
--------------
- SD devices -
--------------
SDVID_74&OID_4A45&PID_USD&REV_1.05&3369D5EF&0&0
Device Description: "SD Storage Card"
Hardware IDs:
"SDVID_74&OID_4a45&PID_USD&REV_1.0"
"SDVID_74&OID_4a45&PID_USD"
Bus Reported Device Description: "SD Memory Card"
Device Manufacturer: "Generic"
Device Friendly Name: "SD Memory Card"
ContainerId: "{C17922A4-7814-11E2-BF78-70F3954A2325}"
vid: "VID_74"
pid: "PID_USD"
-----------
- Volumes -
-----------
STORAGEVOLUME\_??_USBSTOR#DISK&VEN_SANDISK&PROD_CRUZER_TITANIUM&REV_2000#00000000000000031753&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}
Device Description: "Generic volume"
Hardware IDs:
"STORAGEVolume"
STORAGEVOLUME{0A6B09D2-D440-11E1-9886-806E6F6E6963}#0000000000100000
Device Description: "Generic volume"
Hardware IDs:
"STORAGEVolume"
STORAGEVOLUME{0A6B09D2-D440-11E1-9886-806E6F6E6963}#0000000006500000
Device Description: "Generic volume"
Hardware IDs:
"STORAGEVolume"
STORAGEVOLUME\_??_USBSTOR#DISK&VEN_KINGSTON&PROD_DATATRAVELER_108&REV_PMAP#00D0C9CCDF49EBC06000806C&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}
Device Description: "Generic volume"
Hardware IDs:
"STORAGEVolume"
STORAGEVOLUME\_??_SD#VID_74&OID_4A45&PID_USD&REV_1.0#5&3369D5EF&0&0#{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}
Device Description: "Generic volume"
Hardware IDs:
"STORAGEVolume"
vid: "VID_74"
pid: "PID_USD"
----------------------------
- devices with disk drives -
----------------------------
IDEDISKSAMSUNG_SSD_830_SERIES__________________CXM02B1Q4&398487B7&0&0.0.0
Device Description: "Disk drive"
Hardware IDs:
"IDEDiskSAMSUNG_SSD_830_Series__________________CXM02B1Q"
"IDESAMSUNG_SSD_830_Series__________________CXM02B1Q"
"IDEDiskSAMSUNG_SSD_830_Series__________________"
"SAMSUNG_SSD_830_Series__________________CXM02B1Q"
"GenDisk"
Bus Reported Device Description: "SAMSUNG SSD 830 Series"
Device Manufacturer: "(Standard disk drives)"
Device Friendly Name: "SAMSUNG SSD 830 Series"
Device Location Info: "0"
ContainerId: "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"
USBSTORDISK&VEN_KINGSTON&PROD_DATATRAVELER_108&REV_PMAP 0D0C9CCDF49EBC06000806C&0
Device Description: "Disk drive"
Hardware IDs:
"USBSTORDiskKingstonDataTraveler_108PMAP"
"USBSTORDiskKingstonDataTraveler_108"
"USBSTORDiskKingston"
"USBSTORKingstonDataTraveler_108P"
"KingstonDataTraveler_108P"
"USBSTORGenDisk"
"GenDisk"
Bus Reported Device Description: "Kingston DataTraveler 108 USB Device"
Device Manufacturer: "(Standard disk drives)"
Device Friendly Name: "Kingston DataTraveler 108 USB Device"
ContainerId: "{D9CC9C62-4C1D-5CC2-953C-9B0E27AB05E0}"
SDVID_74&OID_4A45&PID_USD&REV_1.05&3369D5EF&0&0
Device Description: "SD Storage Card"
Hardware IDs:
"SDVID_74&OID_4a45&PID_USD&REV_1.0"
"SDVID_74&OID_4a45&PID_USD"
Bus Reported Device Description: "SD Memory Card"
Device Manufacturer: "Generic"
Device Friendly Name: "SD Memory Card"
ContainerId: "{C17922A4-7814-11E2-BF78-70F3954A2325}"
vid: "VID_74"
pid: "PID_USD"
USBSTORDISK&VEN_SANDISK&PROD_CRUZER_TITANIUM&REV_2000 0000000000000031753&0
Device Description: "Disk drive"
Hardware IDs:
"USBSTORDiskSanDisk_Cruzer_Titanium_2000"
"USBSTORDiskSanDisk_Cruzer_Titanium_"
"USBSTORDiskSanDisk_"
"USBSTORSanDisk_Cruzer_Titanium_2"
"SanDisk_Cruzer_Titanium_2"
"USBSTORGenDisk"
"GenDisk"
Bus Reported Device Description: "SanDisk Cruzer Titanium USB Device"
Device Manufacturer: "(Standard disk drives)"
Device Friendly Name: "SanDisk Cruzer Titanium USB Device"
ContainerId: "{DB834D8A-6F58-11E2-AA64-70F3954A2325}"
带有Bus Reported Device Description"的行显示了SetupDiGetDeviceProperty
调用的结果.如果您遵循其他答案,您可以获得有关设备的一些其他信息:this one 和 另一个.
The lines with "Bus Reported Device Description" displays results of SetupDiGetDeviceProperty
call. You can get some additional information about devices if you would follow another answers: this one and another one.
这篇关于SetupDiGetDeviceProperty 使用示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!