+ switch (Property)
+ {
+ case CM_DRP_DEVICEDESC:
+ lpValueName = L"DeviceDesc";
+ break;
+
+ case CM_DRP_HARDWAREID:
+ lpValueName = L"HardwareID";
+ break;
+
+ case CM_DRP_COMPATIBLEIDS:
+ lpValueName = L"CompatibleIDs";
+ break;
+
+ case CM_DRP_SERVICE:
+ lpValueName = L"Service";
+ break;
+
+ case CM_DRP_CLASS:
+ lpValueName = L"Class";
+ break;
+
+ case CM_DRP_CLASSGUID:
+ lpValueName = L"ClassGUID";
+ break;
+
+ case CM_DRP_DRIVER:
+ lpValueName = L"Driver";
+ break;
+
+ case CM_DRP_CONFIGFLAGS:
+ lpValueName = L"ConfigFlags";
+ break;
+
+ case CM_DRP_MFG:
+ lpValueName = L"Mfg";
+ break;
+
+ case CM_DRP_FRIENDLYNAME:
+ lpValueName = L"FriendlyName";
+ break;
+
+ case CM_DRP_LOCATION_INFORMATION:
+ lpValueName = L"LocationInformation";
+ break;
+
+ case CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME:
+ lpValueName = NULL;
+ break;
+
+ case CM_DRP_CAPABILITIES:
+ lpValueName = L"Capabilities";
+ break;
+
+ case CM_DRP_UI_NUMBER:
+ break;
+
+ case CM_DRP_UPPERFILTERS:
+ lpValueName = L"UpperFilters";
+ break;
+
+ case CM_DRP_LOWERFILTERS:
+ lpValueName = L"LowerFilters";
+ break;
+
+ case CM_DRP_BUSTYPEGUID:
+ break;
+
+ case CM_DRP_LEGACYBUSTYPE:
+ break;
+
+ case CM_DRP_BUSNUMBER:
+ break;
+
+ case CM_DRP_ENUMERATOR_NAME:
+ break;
+
+ default:
+ return CR_INVALID_PROPERTY;
+ }
+
+ DPRINT1("Value name: %S\n", lpValueName);
+
+ if (lpValueName)
+ {
+ /* Retrieve information from the Registry */
+
+ }
+ else
+ {
+ /* Retrieve information from the Device Node */
+
+ }
+
+