diff --git a/PInvoke/SetupAPI/DevGuid.cs b/PInvoke/SetupAPI/DevGuid.cs new file mode 100644 index 00000000..c626ec3e --- /dev/null +++ b/PInvoke/SetupAPI/DevGuid.cs @@ -0,0 +1,305 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices.ComTypes; +using System.Text; +using Vanara.Extensions; +using Vanara.InteropServices; + +namespace Vanara.PInvoke +{ + /// Items from the SetupAPI.dll + public static partial class SetupAPI + { + /// + public static readonly Guid GUID_DEVCLASS_1394 = new Guid(0x6bdd1fc1, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f); + + /// + public static readonly Guid GUID_DEVCLASS_1394DEBUG = new Guid(0x66f250d6, 0x7801, 0x4a64, 0xb1, 0x39, 0xee, 0xa8, 0x0a, 0x45, 0x0b, 0x24); + + /// + public static readonly Guid GUID_DEVCLASS_61883 = new Guid(0x7ebefbc0, 0x3200, 0x11d2, 0xb4, 0xc2, 0x00, 0xa0, 0xc9, 0x69, 0x7d, 0x07); + + /// + public static readonly Guid GUID_DEVCLASS_ADAPTER = new Guid(0x4d36e964, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_APMSUPPORT = new Guid(0xd45b1c18, 0xc8fa, 0x11d1, 0x9f, 0x77, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30); + + /// + public static readonly Guid GUID_DEVCLASS_AVC = new Guid(0xc06ff265, 0xae09, 0x48f0, 0x81, 0x2c, 0x16, 0x75, 0x3d, 0x7c, 0xba, 0x83); + + /// + public static readonly Guid GUID_DEVCLASS_BATTERY = new Guid(0x72631e54, 0x78a4, 0x11d0, 0xbc, 0xf7, 0x00, 0xaa, 0x00, 0xb7, 0xb3, 0x2a); + + /// + public static readonly Guid GUID_DEVCLASS_BIOMETRIC = new Guid(0x53d29ef7, 0x377c, 0x4d14, 0x86, 0x4b, 0xeb, 0x3a, 0x85, 0x76, 0x93, 0x59); + + /// + public static readonly Guid GUID_DEVCLASS_BLUETOOTH = new Guid(0xe0cbf06c, 0xcd8b, 0x4647, 0xbb, 0x8a, 0x26, 0x3b, 0x43, 0xf0, 0xf9, 0x74); + + /// + public static readonly Guid GUID_DEVCLASS_CAMERA = new Guid(0xca3e7ab9, 0xb4c3, 0x4ae6, 0x82, 0x51, 0x57, 0x9e, 0xf9, 0x33, 0x89, 0x0f); + + /// + public static readonly Guid GUID_DEVCLASS_CDROM = new Guid(0x4d36e965, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_COMPUTEACCELERATOR = new Guid(0xf01a9d53, 0x3ff6, 0x48d2, 0x9f, 0x97, 0xc8, 0xa7, 0x00, 0x4b, 0xe1, 0x0c); + + /// + public static readonly Guid GUID_DEVCLASS_COMPUTER = new Guid(0x4d36e966, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_DECODER = new Guid(0x6bdd1fc2, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f); + + /// + public static readonly Guid GUID_DEVCLASS_DISKDRIVE = new Guid(0x4d36e967, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_DISPLAY = new Guid(0x4d36e968, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_DOT4 = new Guid(0x48721b56, 0x6795, 0x11d2, 0xb1, 0xa8, 0x00, 0x80, 0xc7, 0x2e, 0x74, 0xa2); + + /// + public static readonly Guid GUID_DEVCLASS_DOT4PRINT = new Guid(0x49ce6ac8, 0x6f86, 0x11d2, 0xb1, 0xe5, 0x00, 0x80, 0xc7, 0x2e, 0x74, 0xa2); + + /// + public static readonly Guid GUID_DEVCLASS_EHSTORAGESILO = new Guid(0x9da2b80f, 0xf89f, 0x4a49, 0xa5, 0xc2, 0x51, 0x1b, 0x08, 0x5b, 0x9e, 0x8a); + + /// + public static readonly Guid GUID_DEVCLASS_ENUM1394 = new Guid(0xc459df55, 0xdb08, 0x11d1, 0xb0, 0x09, 0x00, 0xa0, 0xc9, 0x08, 0x1f, 0xf6); + + /// + public static readonly Guid GUID_DEVCLASS_EXTENSION = new Guid(0xe2f84ce7, 0x8efa, 0x411c, 0xaa, 0x69, 0x97, 0x45, 0x4c, 0xa4, 0xcb, 0x57); + + /// + public static readonly Guid GUID_DEVCLASS_FDC = new Guid(0x4d36e969, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_FIRMWARE = new Guid(0xf2e7dd72, 0x6468, 0x4e36, 0xb6, 0xf1, 0x64, 0x88, 0xf4, 0x2c, 0x1b, 0x52); + + /// + public static readonly Guid GUID_DEVCLASS_FLOPPYDISK = new Guid(0x4d36e980, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_GPS = new Guid(0x6bdd1fc3, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f); + + /// + public static readonly Guid GUID_DEVCLASS_HDC = new Guid(0x4d36e96a, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_HIDCLASS = new Guid(0x745a17a0, 0x74d3, 0x11d0, 0xb6, 0xfe, 0x00, 0xa0, 0xc9, 0x0f, 0x57, 0xda); + + /// + public static readonly Guid GUID_DEVCLASS_HOLOGRAPHIC = new Guid(0xd612553d, 0x06b1, 0x49ca, 0x89, 0x38, 0xe3, 0x9e, 0xf8, 0x0e, 0xb1, 0x6f); + + /// + public static readonly Guid GUID_DEVCLASS_IMAGE = new Guid(0x6bdd1fc6, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f); + + /// + public static readonly Guid GUID_DEVCLASS_INFINIBAND = new Guid(0x30ef7132, 0xd858, 0x4a0c, 0xac, 0x24, 0xb9, 0x02, 0x8a, 0x5c, 0xca, 0x3f); + + /// + public static readonly Guid GUID_DEVCLASS_INFRARED = new Guid(0x6bdd1fc5, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f); + + /// + public static readonly Guid GUID_DEVCLASS_KEYBOARD = new Guid(0x4d36e96b, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_LEGACYDRIVER = new Guid(0x8ecc055d, 0x047f, 0x11d1, 0xa5, 0x37, 0x00, 0x00, 0xf8, 0x75, 0x3e, 0xd1); + + /// + public static readonly Guid GUID_DEVCLASS_MEDIA = new Guid(0x4d36e96c, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_MEDIUM_CHANGER = new Guid(0xce5939ae, 0xebde, 0x11d0, 0xb1, 0x81, 0x00, 0x00, 0xf8, 0x75, 0x3e, 0xc4); + + /// + public static readonly Guid GUID_DEVCLASS_MEMORY = new Guid(0x5099944a, 0xf6b9, 0x4057, 0xa0, 0x56, 0x8c, 0x55, 0x02, 0x28, 0x54, 0x4c); + + /// + public static readonly Guid GUID_DEVCLASS_MODEM = new Guid(0x4d36e96d, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_MONITOR = new Guid(0x4d36e96e, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_MOUSE = new Guid(0x4d36e96f, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_MTD = new Guid(0x4d36e970, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_MULTIFUNCTION = new Guid(0x4d36e971, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_MULTIPORTSERIAL = new Guid(0x50906cb8, 0xba12, 0x11d1, 0xbf, 0x5d, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30); + + /// + public static readonly Guid GUID_DEVCLASS_NET = new Guid(0x4d36e972, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_NETCLIENT = new Guid(0x4d36e973, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_NETDRIVER = new Guid(0x87ef9ad1, 0x8f70, 0x49ee, 0xb2, 0x15, 0xab, 0x1f, 0xca, 0xdc, 0xbe, 0x3c); + + /// + public static readonly Guid GUID_DEVCLASS_NETSERVICE = new Guid(0x4d36e974, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_NETTRANS = new Guid(0x4d36e975, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_NODRIVER = new Guid(0x4d36e976, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_PCMCIA = new Guid(0x4d36e977, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_PNPPRINTERS = new Guid(0x4658ee7e, 0xf050, 0x11d1, 0xb6, 0xbd, 0x00, 0xc0, 0x4f, 0xa3, 0x72, 0xa7); + + /// + public static readonly Guid GUID_DEVCLASS_PORTS = new Guid(0x4d36e978, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_PRINTER = new Guid(0x4d36e979, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_PRINTERUPGRADE = new Guid(0x4d36e97a, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_PRINTQUEUE = new Guid(0x1ed2bbf9, 0x11f0, 0x4084, 0xb2, 0x1f, 0xad, 0x83, 0xa8, 0xe6, 0xdc, 0xdc); + + /// + public static readonly Guid GUID_DEVCLASS_PROCESSOR = new Guid(0x50127dc3, 0x0f36, 0x415e, 0xa6, 0xcc, 0x4c, 0xb3, 0xbe, 0x91, 0x0B, 0x65); + + /// + public static readonly Guid GUID_DEVCLASS_SBP2 = new Guid(0xd48179be, 0xec20, 0x11d1, 0xb6, 0xb8, 0x00, 0xc0, 0x4f, 0xa3, 0x72, 0xa7); + + /// + public static readonly Guid GUID_DEVCLASS_SCMDISK = new Guid(0x53966cb1, 0x4d46, 0x4166, 0xbf, 0x23, 0xc5, 0x22, 0x40, 0x3c, 0xd4, 0x95); + + /// + public static readonly Guid GUID_DEVCLASS_SCMVOLUME = new Guid(0x53ccb149, 0xe543, 0x4c84, 0xb6, 0xe0, 0xbc, 0xe4, 0xf6, 0xb7, 0xe8, 0x06); + + /// + public static readonly Guid GUID_DEVCLASS_SCSIADAPTER = new Guid(0x4d36e97b, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_SECURITYACCELERATOR = new Guid(0x268c95a1, 0xedfe, 0x11d3, 0x95, 0xc3, 0x00, 0x10, 0xdc, 0x40, 0x50, 0xa5); + + /// + public static readonly Guid GUID_DEVCLASS_SENSOR = new Guid(0x5175d334, 0xc371, 0x4806, 0xb3, 0xba, 0x71, 0xfd, 0x53, 0xc9, 0x25, 0x8d); + + /// + public static readonly Guid GUID_DEVCLASS_SIDESHOW = new Guid(0x997b5d8d, 0xc442, 0x4f2e, 0xba, 0xf3, 0x9c, 0x8e, 0x67, 0x1e, 0x9e, 0x21); + + /// + public static readonly Guid GUID_DEVCLASS_SMARTCARDREADER = new Guid(0x50dd5230, 0xba8a, 0x11d1, 0xbf, 0x5d, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30); + + /// + public static readonly Guid GUID_DEVCLASS_SMRDISK = new Guid(0x53487c23, 0x680f, 0x4585, 0xac, 0xc3, 0x1f, 0x10, 0xd6, 0x77, 0x7e, 0x82); + + /// + public static readonly Guid GUID_DEVCLASS_SMRVOLUME = new Guid(0x53b3cf03, 0x8f5a, 0x4788, 0x91, 0xb6, 0xd1, 0x9e, 0xd9, 0xfc, 0xcc, 0xbf); + + /// + public static readonly Guid GUID_DEVCLASS_SOFTWARECOMPONENT = new Guid(0x5c4c3332, 0x344d, 0x483c, 0x87, 0x39, 0x25, 0x9e, 0x93, 0x4c, 0x9c, 0xc8); + + /// + public static readonly Guid GUID_DEVCLASS_SOUND = new Guid(0x4d36e97c, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_SYSTEM = new Guid(0x4d36e97d, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_TAPEDRIVE = new Guid(0x6d807884, 0x7d21, 0x11cf, 0x80, 0x1c, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_UNKNOWN = new Guid(0x4d36e97e, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); + + /// + public static readonly Guid GUID_DEVCLASS_UCM = new Guid(0xe6f1aa1c, 0x7f3b, 0x4473, 0xb2, 0xe8, 0xc9, 0x7d, 0x8a, 0xc7, 0x1d, 0x53); + + /// + public static readonly Guid GUID_DEVCLASS_USB = new Guid(0x36fc9e60, 0xc465, 0x11cf, 0x80, 0x56, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00); + + /// + public static readonly Guid GUID_DEVCLASS_VOLUME = new Guid(0x71a27cdd, 0x812a, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f); + + /// + public static readonly Guid GUID_DEVCLASS_VOLUMESNAPSHOT = new Guid(0x533c5b84, 0xec70, 0x11d2, 0x95, 0x05, 0x00, 0xc0, 0x4f, 0x79, 0xde, 0xaf); + + /// + public static readonly Guid GUID_DEVCLASS_WCEUSBS = new Guid(0x25dbce51, 0x6c8f, 0x4a72, 0x8a, 0x6d, 0xb5, 0x4c, 0x2b, 0x4f, 0xc8, 0x35); + + /// + public static readonly Guid GUID_DEVCLASS_WPD = new Guid(0xeec5ad98, 0x8080, 0x425f, 0x92, 0x2a, 0xda, 0xbf, 0x3d, 0xe3, 0xf6, 0x9a); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_TOP = new Guid(0xb369baf4, 0x5568, 0x4e82, 0xa8, 0x7e, 0xa9, 0x3e, 0xb1, 0x6b, 0xca, 0x87); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_ACTIVITYMONITOR = new Guid(0xb86dff51, 0xa31e, 0x4bac, 0xb3, 0xcf, 0xe8, 0xcf, 0xe7, 0x5c, 0x9f, 0xc2); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_UNDELETE = new Guid(0xfe8f1572, 0xc67a, 0x48c0, 0xbb, 0xac, 0x0b, 0x5c, 0x6d, 0x66, 0xca, 0xfb); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_ANTIVIRUS = new Guid(0xb1d1a169, 0xc54f, 0x4379, 0x81, 0xdb, 0xbe, 0xe7, 0xd8, 0x8d, 0x74, 0x54); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_REPLICATION = new Guid(0x48d3ebc4, 0x4cf8, 0x48ff, 0xb8, 0x69, 0x9c, 0x68, 0xad, 0x42, 0xeb, 0x9f); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_CONTINUOUSBACKUP = new Guid(0x71aa14f8, 0x6fad, 0x4622, 0xad, 0x77, 0x92, 0xbb, 0x9d, 0x7e, 0x69, 0x47); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_CONTENTSCREENER = new Guid(0x3e3f0674, 0xc83c, 0x4558, 0xbb, 0x26, 0x98, 0x20, 0xe1, 0xeb, 0xa5, 0xc5); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_QUOTAMANAGEMENT = new Guid(0x8503c911, 0xa6c7, 0x4919, 0x8f, 0x79, 0x50, 0x28, 0xf5, 0x86, 0x6b, 0x0c); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_SYSTEMRECOVERY = new Guid(0x2db15374, 0x706e, 0x4131, 0xa0, 0xc7, 0xd7, 0xc7, 0x8e, 0xb0, 0x28, 0x9a); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_CFSMETADATASERVER = new Guid(0xcdcf0939, 0xb75b, 0x4630, 0xbf, 0x76, 0x80, 0xf7, 0xba, 0x65, 0x58, 0x84); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_HSM = new Guid(0xd546500a, 0x2aeb, 0x45f6, 0x94, 0x82, 0xf4, 0xb1, 0x79, 0x9c, 0x31, 0x77); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_COMPRESSION = new Guid(0xf3586baf, 0xb5aa, 0x49b5, 0x8d, 0x6c, 0x05, 0x69, 0x28, 0x4c, 0x63, 0x9f); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_ENCRYPTION = new Guid(0xa0a701c0, 0xa511, 0x42ff, 0xaa, 0x6c, 0x06, 0xdc, 0x03, 0x95, 0x57, 0x6f); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_VIRTUALIZATION = new Guid(0xf75a86c0, 0x10d8, 0x4c3a, 0xb2, 0x33, 0xed, 0x60, 0xe4, 0xcd, 0xfa, 0xac); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_PHYSICALQUOTAMANAGEMENT = new Guid(0x6a0a8e78, 0xbba6, 0x4fc4, 0xa7, 0x09, 0x1e, 0x33, 0xcd, 0x09, 0xd6, 0x7e); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_OPENFILEBACKUP = new Guid(0xf8ecafa6, 0x66d1, 0x41a5, 0x89, 0x9b, 0x66, 0x58, 0x5d, 0x72, 0x16, 0xb7); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_SECURITYENHANCER = new Guid(0xd02bc3da, 0x0c8e, 0x4945, 0x9b, 0xd5, 0xf1, 0x88, 0x3c, 0x22, 0x6c, 0x8c); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_COPYPROTECTION = new Guid(0x89786ff1, 0x9c12, 0x402f, 0x9c, 0x9e, 0x17, 0x75, 0x3c, 0x7f, 0x43, 0x75); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_BOTTOM = new Guid(0x37765ea0, 0x5958, 0x4fc9, 0xb0, 0x4b, 0x2f, 0xdf, 0xef, 0x97, 0xe5, 0x9e); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_SYSTEM = new Guid(0x5d1b9aaa, 0x01e2, 0x46af, 0x84, 0x9f, 0x27, 0x2b, 0x3f, 0x32, 0x4c, 0x46); + + /// + public static readonly Guid GUID_DEVCLASS_FSFILTER_INFRASTRUCTURE = new Guid(0xe55fa6f9, 0x128c, 0x4d04, 0xab, 0xab, 0x63, 0x0c, 0x74, 0xb1, 0x45, 0x3a); + } +} \ No newline at end of file diff --git a/PInvoke/SetupAPI/DevPKEY.cs b/PInvoke/SetupAPI/DevPKEY.cs new file mode 100644 index 00000000..c02a948d --- /dev/null +++ b/PInvoke/SetupAPI/DevPKEY.cs @@ -0,0 +1,5564 @@ +using System; +using System.Runtime.InteropServices.ComTypes; +using Vanara.InteropServices; + +namespace Vanara.PInvoke +{ + /// Items from the SetupAPI.dll + public static partial class SetupAPI + { + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_AdditionalSoftwareRequested = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 19); + + /// + /// The DEVPKEY_Device_Address device property represents the bus-specific address of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Address + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_ADDRESS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_Address to the address of the device on its bus. For information about the + /// interpretation of a device address, see the DevicePropertyAddress value of the DeviceProperty parameter of IoGetDeviceProperty. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Address. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_Address property + /// key. Instead, you can use the corresponding SPDRP_ADDRESS identifier to access the value of the property on these earlier + /// versions of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-address + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_Address = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 30); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_AssignedToGuest = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 24); + + /// + /// + /// The DEVPKEY_Device_BaseContainerId device property represents the GUID value of the base container identifier (ID) .The Windows + /// Plug and Play (PnP) manager assigns this value to the device node (devnode). + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_BaseContainerId + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_GUID + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_BASE_CONTAINERID + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// The PnP manager determines the container ID for a devnode by using one of the following methods: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// For more information about these methods, see How Container IDs are Generated. + /// + /// Regardless of how the container ID value is obtained, the PnP manager assigns the value to the DEVPKEY_Device_BaseContainerId + /// property of the devnode. + /// + /// + /// The DEVPKEY_Device_BaseContainerId property can be used to force the grouping of a new devnode with other devnodes that exists + /// in the system. This lets you use the new devnode as the parent (or base) container ID for other related devnodes. To do this, + /// you must first obtain the DEVPKEY_Device_BaseContainerID GUID of the existing devnode. Then, you must return the container ID + /// GUID of the new devnode in response to an IRP_MN_QUERY_ID query request that has the Parameters.QueryId.IdType + /// field set to BusQueryContainerID. + /// + /// + /// Note The value that is returned by a query of the DEVPKEY_Device_BaseContainerId or DEVPKEY_Device_ContainerId + /// properties can be different for the same devnode. + /// + /// + /// Note Do not use the DEVPKEY_Device_BaseContainerId property to reconstruct device container groupings in the system. Use + /// the DEVPKEY_Device_ContainerId property instead. + /// + /// For more information about container IDs, see Container IDs. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-basecontainerid + [CorrespondingType(typeof(Guid))] + public static readonly DEVPROPKEY DEVPKEY_Device_BaseContainerId = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 38); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_BiosDeviceName = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 10); + + /// + /// + /// The DEVPKEY_Device_BusNumber device property represents the number that identifies the bus instance that a device instance is + /// attached to. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_BusNumber + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_BUSNUMBER + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_BusNumber to the value of the BusNumber member of the PNP_BUS_INFORMATION + /// structure that a bus driver returns in response to an IRP_MN_QUERY_BUS_INFORMATION request. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_BusNumber. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_BusNumber + /// property key. Instead, you can use the corresponding SPDRP_BUSNUMBER identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-busnumber + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_BusNumber = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 23); + + /// + /// The DEVPKEY_Device_BusRelations device property represents the bus relations for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_BusRelations + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Not applicable + /// + /// + /// + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_BusRelations. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support this property. For information about how to retrieve + /// device relations properties on these earlier versions of Windows, see Retrieving Device Relations. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-busrelations + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_BusRelations = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 7); + + /// + /// + /// The DEVPKEY_Device_BusReportedDeviceDesc device property represents a string value that was reported by the bus driver for the + /// device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_BusReportedDeviceDesc + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_BusReportedDeviceDesc is set by Windows Plug and Play (PnP) with the string value that is reported + /// by the bus driver for a device instance. The bus driver returns this value when queried with IRP_MN_QUERY_DEVICE_TEXT. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_BusReportedDeviceDesc. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-busreporteddevicedesc + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_BusReportedDeviceDesc = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 4); + + /// + /// The DEVPKEY_Device_BusTypeGuid device property represents the GUID that identifies the bus type of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_BusTypeGuid + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_GUID + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_BUSTYPEGUID + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_BusTypeGuid to the value of the BusTypeGuid member of the PNP_BUS_INFORMATION + /// structure that a bus driver returns in response to an IRP_MN_QUERY_BUS_INFORMATION request. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_BusTypeGuid. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_BusTypeGuid + /// property key. Instead, you can use the corresponding SPDRP_BUSTYPEGUID identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-bustypeguid + [CorrespondingType(typeof(Guid))] + public static readonly DEVPROPKEY DEVPKEY_Device_BusTypeGuid = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 21); + + /// + /// The DEVPKEY_Device_Capabilities device property represents the capabilities of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Capabilities + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_CAPABILITIES + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_Capabilities to the capability value that the device driver returns in response to an + /// IRP_MN_QUERY_CAPABILITIES request for device capability information. The value of DEVPKEY_Device_Capabilities is a + /// bitwise OR of the CM_DEVCAP_Xxx capability flags that are defined in Cfgmgr32.h. The device capabilities that these flags + /// represent correspond to a subset of the members of the DEVICE_CAPABILITIES structure. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Capabilities. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_Capabilities + /// property key. Instead, you can use the corresponding SPDRP_CAPABILITIES identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-capabilities + [CorrespondingType(typeof(CM_DEVCAP))] + public static readonly DEVPROPKEY DEVPKEY_Device_Capabilities = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 17); + + /// + /// The DEVPKEY_Device_Characteristics device property represents the characteristics of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Characteristics + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_CHARACTERISTICS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_Characteristics is a bitwise OR of the FILE_Xxx file characteristic flags that are defined in Wdm.h + /// and Ntddk.h. For more information about the device characteristic flags, see the DeviceCharacteristics parameter of + /// IoCreateDevice and Specifying Device Characteristics. + /// + /// + /// You can set the value of DEVPKEY_Device_Characteristics by using an INF AddReg directive that is included in the INF + /// DDInstall.HW section that installs a device. + /// + /// You can retrieve the value of DEVPKEY_Device_Characteristics by calling SetupDiGetDeviceProperty. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_Characteristics + /// property key. Instead, you can use the corresponding SPDRP_CHARACTERISTICS identifier to access the value of the property on + /// these earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, + /// see Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-characteristics + [CorrespondingType(typeof(CM_FILE))] + public static readonly DEVPROPKEY DEVPKEY_Device_Characteristics = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 29); + + /// + /// + /// The DEVPKEY_Device_Children device property represents a list of the device instance IDs for the devices that are children of a + /// device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Children + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Not applicable + /// + /// + /// + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Children. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support this property. For information about how to retrieve + /// device relations properties on these earlier versions of Windows, see Retrieving Device Relations. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-children + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_Children = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 9); + + /// + /// + /// + /// The DEVPKEY_Device_Class device property represents the name of the device setup class that a device instance belongs to. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Class + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_CLASS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of the DEVPKEY_Device_Class property is set by the class-name value that is supplied by the Class directive in the + /// INF Version section of the INF file that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Class. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_Class property + /// key. Instead, you can use the corresponding SPDRP_CLASS identifier to access the value of the property on these earlier versions + /// of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing Device + /// Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-class + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_Class = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 9); + + /// + /// + /// The DEVPKEY_Device_ClassGuid device property represents the GUID of the device setup class that a device instance belongs to. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_ClassGuid + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_GUID + /// + /// + /// Property access + /// Read-only by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_CLASSGUID + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_ClassGuid is set by the INF ClassGUID directive that is supplied by the INF Version section + /// of the INF file that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_ClassGuid. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_ClassGuid + /// property key. Instead, you can use the corresponding SPDRP_CLASSGUID identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-classguid + [CorrespondingType(typeof(Guid))] + public static readonly DEVPROPKEY DEVPKEY_Device_ClassGuid = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 10); + + /// + /// The DEVPKEY_DEVICE_CompatibleIds device property represents the list of compatible identifiers for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_CompatibleIds + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Internal data format + /// "compatible-id1\0compatible-id2\0...compatible-idn\0\0" + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_COMPATIBLEIDS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DEVICE_CompatibleIds is set by the compatible-id entry values that are supplied for a device in the INF + /// Models section of the INF file that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_DEVICE_CompatibleIds. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_CompatibleIds + /// property key. Instead, you can use the corresponding SPDRP_COMPATIBLEIDS identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-compatibleids + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_CompatibleIds = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 4); + + /// + /// The DEVPKEY_Device_ConfigFlags device property represents the configuration flags that are set for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_ConfigFlags + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_CONFIGFLAGS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_ConfigFlags is set during a device installation to indicate the current configuration of a device. + /// + /// The configuration flags are for internal use only. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_ConfigFlags and call + /// SetupDiSetDeviceProperty to set DEVPKEY_Device_ConfigFlags. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-configflags + [CorrespondingType(typeof(CONFIGFLAG))] + public static readonly DEVPROPKEY DEVPKEY_Device_ConfigFlags = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 12); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_ConfigurationId = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 7); + + /// + /// + /// The DEVPKEY_Device_ContainerId device property is used by the Plug and Play (PnP) manager to group one or more device nodes + /// (devnodes) into a device container that represents an instance of a physical device. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_ContainerId + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_GUID + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Starting with Windows 7, the PnP manager uses the device container and its identifier (ContainerID) to group one or more + /// devnodes that originated from and belong to each instance of a particular physical device. The ContainerID for a device instance + /// is referenced through the DEVPKEY_Device_ContainerId device property. + /// + /// + /// When you group all the devnodes that originated from an instance of a single device into containers, you accomplish the + /// following results: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// The DEVPKEY_Device_ContainerId can be used to determine the device container grouping of devnodes in a system. For a given + /// devnode, you can determine all the devnodes that belong to the same container by completing the following steps: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// Note All devnodes that belong to a container on a given bus type must share the same ContainerID value. + /// For more information about ContainerIDs, see Container IDs. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-containerid + [CorrespondingType(typeof(Guid))] + public static readonly DEVPROPKEY DEVPKEY_Device_ContainerId = new DEVPROPKEY(0x8c7ed206, 0x3f8a, 0x4827, 0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c, 2); + + /// + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_DebuggerSafe = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 12); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_DependencyDependents = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 21); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_DependencyProviders = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 20); + + /// + /// The DEVPKEY_Device_DeviceDesc device property represents a description of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DeviceDesc + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_DEVICEDESC + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_DeviceDesc is set by the device-description entry value that is supplied by the INF Models + /// section of the INF file that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_DEVICE_DeviceDesc. + /// + /// You can retrieve the value of the DEVPKEY_NAME device instance property to retrieve the name of the device as it should + /// appear in a user interface item. + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_DeviceDesc + /// property key. Instead, these earlier versions of Windows use the corresponding SPDRP_DEVICEDESC identifier to access the value + /// of the property. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-devicedesc + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_DeviceDesc = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 2); + + /// + /// The DEVPKEY_Device_DevNodeStatus device property represents the status of a device node (devnode). + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DevNodeStatus + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// The value of DEVPKEY_Device_DevNodeStatus is a bitwise OR of the DN_Xxx bit flags that are defined in Cfg.h. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DevNodeStatus. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support this property. For information about how to access the + /// status of a device instance on these earlier versions of Windows, see Retrieving the Status and Problem Code for a Device Instance. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-devnodestatus + [CorrespondingType(typeof(DN))] + public static readonly DEVPROPKEY DEVPKEY_Device_DevNodeStatus = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 2); + + /// + /// The DEVPKEY_Device_DevType device property represents the device type of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DevType + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_DEVTYPE + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_DevType to the value of the DeviceType member of the DEVICE_OBJECT structure for + /// a device instance. The value of DEVPKEY_Device_DevType is one of the system-defined device type values that are listed in + /// Specifying Device Types. + /// + /// + /// You can set the value of DEVPKEY_Device_DevType by using an INF AddReg directive that is included in the INF + /// DDInstall.HW section in the INF file that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DevType. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_DevType property + /// key. Instead, you can use the corresponding SPDRP_DEVTYPE identifier to access the value of the property on these earlier + /// versions of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-devtype + [CorrespondingType(typeof(FILE_DEVICE))] + public static readonly DEVPROPKEY DEVPKEY_Device_DevType = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 27); + + /// + /// + /// The DEVPKEY_Device_DHP_Rebalance_Policy device property represents a value that indicates whether a device will participate in + /// resource rebalancing following a dynamic hardware partitioning (DHP) processor hot-add operation. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DHP_Rebalance_Policy + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read and write access by applications and services. + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// On a dynamically partitionable server that is running Windows Server 2008 or later versions of Windows Server, the operating + /// system initiates a system-wide resource rebalance whenever a new processor is dynamically added to the system. The + /// DEVPKEY_Device_DHP_Rebalance_Policy device property determines whether a device participates in such a resource rebalance. The + /// device participates in resource rebalancing under the following circumstances: + /// + /// + /// + /// + /// The DEVPKEY_Device_DHP_Rebalance_Policy device property does not exist. + /// + /// + /// + /// + /// The device property exists and the value of the device property is not set. + /// + /// + /// + /// + /// The device property exists and the value of the device property is set to 2. + /// + /// + /// + /// + /// If the DEVPKEY_Device_DHP_Rebalance_Policy device property exists and the value of the property is set to 1, the device will not + /// participate in resource rebalancing when a new processor is dynamically added to the system. + /// + /// A device's device setup class is specified in the INF Version Section of the device's INF file. + /// + /// The default behavior for devices in the Network Adapter (Class = Net) device setup class is that members of the class do not + /// participate in resource rebalancing when a new processor is dynamically added to the system. The default behavior for devices in + /// all other device setup classes is that members participate in resource rebalancing when a new processor is dynamically added to + /// the system. + /// + /// + /// This device property does not affect whether a device will participate in a resource rebalance that is initiated for other reasons. + /// + /// You can access the DEVPKEY_Device_DHP_Rebalance_Policy property by calling SetupDiGetDeviceProperty and SetupDiSetDeviceProperty. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-dhp-rebalance-policy + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_DHP_Rebalance_Policy = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 2); + + /// + /// The DEVPKEY_Device_Driver device property represents the registry entry name of the driver key for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Driver + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_DRIVER + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_Driver after it installs a driver for device. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Driver. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_Driver property + /// key. Instead, you can use the corresponding SPDRP_DRIVER identifier to access the value of the property on these earlier + /// versions of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driver + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_Driver = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 11); + + /// + /// + /// The DEVPKEY_Device_DriverCoInstallers device property represents a list of DLL names, and entry points in the DLLs, that are + /// registered as co-installers for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverCoInstallers + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Data format + /// "AbcCoInstall.dll,AbcCoInstallEntryPoint\0...AbcCoInstall.dll, AbcCoInstallEntryPoin\0\0" + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_COINSTALLERS_32 CoInstallers32 + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_DriverCoInstallers is supplied by the INF DDInstall.Coinstallers section in the INF file that + /// installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DriverCoInstallers. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_Device_DriverCoInstallers property key. On these earlier versions of Windows, you can access the value of this property + /// by accessing the corresponding CoInstallers32 registry value under the software key for the device instance. For + /// information about how to access this property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-drivercoinstallers + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverCoInstallers = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 11); + + /// + /// + /// The PKEY_Device_DriverDate device property represents the date of the driver that is currently installed for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverDate + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_FILETIME + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_DRIVERDATEDATA DriverDateData + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_DriverDate is supplied by the INF DriverVer directive that is included in the INF Version + /// section of an INF file that installs a device or by a device-specific INF DriverVer directive that is included in the + /// INF DDInstall section that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DriverDate property. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_DriverDate + /// property key. On these earlier versions of Windows, you can access the value of this property by accessing the corresponding + /// DriverDateData registry value under the software key for the device instance. For information about how to access this + /// property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverdate + [CorrespondingType(typeof(FILETIME))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverDate = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 2); + + /// + /// + /// The DEVPKEY_Device_DriverDesc device property represents the description of the driver that is installed for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverDesc + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_DRVDESC DriverDesc + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_DriverDesc is set by the device-description entry value that is supplied by the INF Models + /// section of the INF file that installs a device. + /// + /// + /// The value of DEVPKEY_Device_DriverDesc is not displayed in an end-user dialog box or used for any reason by the operating system. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DriverDesc. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_LocationPaths + /// property key. On these earlier versions of Windows, you can access the value of this property by accessing the corresponding + /// DriverDesc registry value under the software key for the device instance. For information about how to access this + /// property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverdesc + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverDesc = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 4); + + /// + /// The PKEY_Device_DriverInfPath device property represents the name of the INF file that installed a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverInfPath + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_INFPATH InfPath + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_DriverInfPath. A copy of the INF file that installed a device is located in the system + /// INF file directory. The name of the INF file copy is OemNnn.inf, where Nnn is a decimal number from 0 through 9999. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DriverInfPath. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_DriverInfPath + /// property key. On these earlier versions of Windows, you can access the value of this property by accessing the corresponding + /// InfPath registry value under the software key for the device instance. For information about how to access this property + /// value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverinfpath + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverInfPath = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 5); + + /// + /// + /// The DEVPKEY_Device_DriverInfSection device property represents the name of the INF DDInstall section that installs the + /// driver for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverInfSection + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_INFSECTION InfSection + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// Windows sets the value of the PKEY_Device_DriverInfSection property. + /// You can call SetupDiGetDeviceProperty to retrieve the value of PKEY_Device_DriverInfSection. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the PKEY_Device_DriverInfSection + /// property key. On these earlier versions of Windows, you can access the value of this property by accessing the corresponding + /// InfSection registry value under the software key for the device instance. For information about how to access this + /// property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverinfsection + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverInfSection = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 6); + + /// + /// + /// The DEVPKEY_Device_DriverInfSectionExt device driver property represents the platform extension of the INF DDInstall + /// section that installs the driver for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverInfSectionExt + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_INFSECTIONEXT InfSectionExt + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_DriverInfSectionExt. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DriverInfSectionExt. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_Device_DriverInfSectionExt property key. On these earlier versions of Windows, you can access the value of this property + /// by accessing the corresponding InfSectionExt registry value under the software key for the device instance. For + /// information about how to access this property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverinfsectionext + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverInfSectionExt = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 7); + + /// + /// The DEVPKEY_Device_DriverLogoLevel device property represents the Microsoft Windows Logo level for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverLogoLevel + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_UINT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_DriverLogoLevel. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DriverLogoLevel. + /// Windows Server 2003, Windows XP, and Windows 2000 do not support this property. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverlogolevel + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverLogoLevel = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 15); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverProblemDesc = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 11); + + /// + /// + /// The DEVPKEY_Device_DriverPropPageProvider device property represents the name of a DLL, and an entry point in the DLL, that is + /// registered as a property page provider for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverPropPageProvider + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_ENUMPROPPAGES_32 EnumPropPages32 + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_Device_DriverPropPageProvider by using an INF AddReg directive that is included the + /// INF DDInstall section of the INF file that installs a device. + /// + /// You can retrieve the value of DEVPKEY_Device_DriverPropPageProvider by calling SetupDiGetDeviceProperty. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_Device_DriverPropPageProvider property key. On these earlier versions of Windows, you can access the value of this + /// property by accessing the corresponding EnumPropPages32 registry value under the software key for the device instance. + /// For information about how to access this property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverproppageprovider + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverPropPageProvider = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 10); + + /// + /// + /// The DEVPKEY_Device_DriverProvider device property represents the name of the provider of the driver package for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverProvider + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_PROVIDER_NAME ProviderName + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_DriverProvider is supplied by the Provider directive that is included in the INF Version + /// section of a device INF file. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DriverProvider. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_DriverProvider + /// property key. On these earlier versions of Windows, you can access the value of this property by accessing the corresponding + /// ProviderName registry value under the software key for the device instance. For information about how to access this + /// property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverprovider + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverProvider = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 9); + + /// + /// The DEVPKEY_Device_DriverRank device property represents the rank of the driver that is installed for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverRank + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_UINT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_DriverRank. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_DriverRank. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_DriverRank + /// property key. For information about how to access this property on these earlier versions of Windows, see Accessing Device + /// Driver Properties. + /// + /// For information about driver rank, see How Windows Ranks Drivers. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverrank + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverRank = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 14); + + /// + /// + /// The PKEY_Device_DriverVersion device property represents the version of the driver that is currently installed on a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_DriverVersion + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_DRIVERVERSION DriverVersion + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_DriverVersion is supplied by the INF DriverVer directive that is included in the INF + /// Version section of an INF file that installs a device or is supplied by a device-specific INF DriverVer directive + /// that is included in the INF DDInstall section that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of PKEY_Device_DriverVersion. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_DriverVersion + /// property key. On these earlier versions of Windows, you can access the value of this property by accessing the corresponding + /// DriverVersion registry value under the software key for the device instance. For information about how to access this + /// property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-driverversion + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_DriverVersion = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 3); + + /// + /// The DEVPKEY_Device_EjectionRelations device property represents the ejection relations for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_EjectionRelations + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Not applicable + /// + /// + /// + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_EjectionRelations. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support this property. For information about how to retrieve + /// device relations properties on these earlier versions of Windows, see Retrieving Device Relations. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-ejectionrelations + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_EjectionRelations = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 4); + + /// + /// The DEVPKEY_Device_EnumeratorName device property represents the name of the enumerator for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_EnumeratorName + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_ENUMERATOR_NAME + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_EnumeratorName to the name of the enumerator for a device. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_EnumeratorName. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_EnumeratorName + /// property key. Instead, you can use the corresponding SPDRP_ENUMERATOR_NAME identifier to access the value of the property on + /// these earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, + /// see Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-enumeratorname + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_EnumeratorName = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 24); + + /// + /// + /// The DEVPKEY_Device_Exclusive device property represents a Boolean value that determines whether a device instance can be opened + /// for exclusive use. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Exclusive + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_EXCLUSIVE + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of the DEVPKEY_Device_Exclusive property is DEVPROP_TRUE if the device can be opened for exclusive use. Otherwise, the + /// value of the property is DEVPROP_FALSE. + /// + /// + /// You can set the value of DEVPKEY_Device_Exclusive by using an INF AddReg directive that is included in the INF + /// DDInstall.HW section that installs a device. + /// + /// You can retrieve or set the value of DEVPKEY_Device_Exclusive by calling SetupDiGetDeviceProperty and SetupDiSetDeviceProperty. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_Exclusive + /// property key. Instead, you can use the corresponding SPDRP_EXCLUSIVE identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-exclusive + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_Exclusive = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 28); + + /// + [CorrespondingType(typeof(ulong))] + public static readonly DEVPROPKEY DEVPKEY_Device_ExtendedAddress = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 23); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_ExtendedConfigurationIds = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 15); + + /// + [CorrespondingType(typeof(FILETIME))] + public static readonly DEVPROPKEY DEVPKEY_Device_FirmwareDate = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 17); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_FirmwareRevision = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 19); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_FirmwareVersion = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 18); + + /// + /// + /// The DEVPKEY_Device_FirstInstallDate device property specifies the time stamp when the device instance was first installed in the system. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_FirstInstallDate + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_FILETIME + /// + /// + /// Property access + /// Read-only access by installation applications and installers. + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_FirstInstallDate with the time stamp that specifies when the device instance was first + /// installed in the system. + /// + /// + /// Note Unlike the DEVPKEY_Device_InstallDate property, the value of the DEVPKEY_Device_FirstInstallDate property + /// does not change with each successive update of the device driver. For example, a driver that was updated through Windows Update + /// does not change the value of this property, + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_FirstInstallDate property. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-firstinstalldate + [CorrespondingType(typeof(FILETIME))] + public static readonly DEVPROPKEY DEVPKEY_Device_FirstInstallDate = new DEVPROPKEY(0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 101); + + /// + /// The DEVPKEY_Device_FriendlyName device property represents the friendly name of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_FriendlyName + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_FRIENDLYNAME + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can use the DEVPKEY_NAME device property instead of DEVPKEY_Device_FriendlyName to display the name that identifies a + /// device instance in a user interface display. + /// + /// + /// You can set the value of DEVPKEY_Device_FriendlyName by using an INF AddReg directive that is included in the INF + /// DDInstall.HW section in the INF file that installs a device. + /// + /// + /// You can retrieve the value of DEVPKEY_Device_FriendlyName by calling SetupDiGetDeviceProperty or you can set this + /// property by calling SetupDiSetDeviceProperty. + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_FriendlyName + /// property key. Instead, you can use the corresponding SPDRP_FRIENDLYNAME identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-friendlyname + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_FriendlyName = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14); + + /// + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_FriendlyNameAttributes = new DEVPROPKEY(0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 3); + + /// + /// + /// The DEVPKEY_Device_GenericDriverInstalled device property represents a Boolean value that indicates whether the driver installed + /// for a device instance provides only basic device functionality. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_GenericDriverInstalled + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_GenericDriverInstalled. + /// + /// The value of DEVPKEY_Device_GenericDriverInstalled is set to DEVPROP_TRUE to indicate that a basic driver is installed. + /// Otherwise, the value of the property is set to DEVPROP_FALSE. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_GenericDriverInstalled. + /// Windows Server 2003, Windows XP, and Windows 2000 do not support this property. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-genericdriverinstalled + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_GenericDriverInstalled = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 18); + + /// + /// The DEVPKEY_DEVICE_HardwareIds device property represents the list of hardware identifiers for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_HardwareIds + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Data format + /// "hw-id1\0hw-id2\0...hw-idn\0\0" + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_HARDWAREID + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DEVICE_HardwareIds is set by the hw-id entry values for a device that are supplied by the INF Models + /// section of the INF file that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_DEVICE_HardwareIds. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_DEVICE_HardwareIds + /// property key. Instead, you can use the corresponding SPDRP_HARDWAREID identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-hardwareids + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_HardwareIds = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 3); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_HasProblem = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 6); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_InLocalMachineContainer = new DEVPROPKEY(0x8c7ed206, 0x3f8a, 0x4827, 0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c, 4); + + /// + /// + /// The DEVPKEY_Device_InstallDate device property specifies the time stamp when the device instance was last installed in the system. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_InstallDate + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_FILETIME + /// + /// + /// Property access + /// Read-only access by installation applications and installers. + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_InstallDate with the time stamp that specifies when the device instance was last + /// installed in the system. + /// + /// + /// This time stamp value changes for each successive update of the device driver. For example, this time stamp reports the date and + /// time when the device driver was last updated through Windows Update. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_FirstInstallDate property. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-installdate + [CorrespondingType(typeof(FILETIME))] + public static readonly DEVPROPKEY DEVPKEY_Device_InstallDate = new DEVPROPKEY(0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 100); + + /// + /// The DEVPKEY_Device_InstallState device property represents the installation state of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_InstallState + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_UINT32 + /// + /// + /// Property access + /// Read-only by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_INSTALL_STATE + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_InstallState to one of the CM_INSTALL_STATE_Xxx values that are defined in Cfgmgr32.h. + /// The CM_INSTALL_STATE_Xxx values correspond to the DEVICE_INSTALL_STATE enumeration values. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_InstallState. + /// + /// Windows Server 2003 and Windows XP support this property, but do not support the DEVPKEY_Device_InstallState property key. + /// Instead, you can use the corresponding SPDRP_INSTALL_STATE identifier to access the value of the property on these earlier + /// versions of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-installstate + [CorrespondingType(typeof(CM_INSTALL_STATE))] + public static readonly DEVPROPKEY DEVPKEY_Device_InstallState = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 36); + + /// + /// The DEVPKEY_Device_InstanceId device property represents the device instance identifier of a device. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_InstanceId + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers. + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// The value of DEVPKEY_Device_InstanceId is set internally by Windows during the installation of a device instance. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_InstanceId for a device instance. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_InstanceId + /// property key. For information about how to retrieve a device instance identifier on these earlier versions of Windows, see + /// Retrieving a Device Instance Identifier. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-instanceid + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_InstanceId = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 256); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_IsAssociateableByUserAction = new DEVPROPKEY(0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 7); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_IsPresent = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 5); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_IsRebootRequired = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 16); + + /// + [CorrespondingType(typeof(FILETIME))] + public static readonly DEVPROPKEY DEVPKEY_Device_LastArrivalDate = new DEVPROPKEY(0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 102); + + /// + [CorrespondingType(typeof(FILETIME))] + public static readonly DEVPROPKEY DEVPKEY_Device_LastRemovalDate = new DEVPROPKEY(0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 103); + + /// + /// + /// The DEVPKEY_Device_Legacy device property represents a Boolean value that indicates whether a device is a root-enumerated device + /// that the Plug and Play (PnP) manager automatically created when the non-PnP driver for the device was loaded. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Legacy + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The PnP manager sets the value of DEVPKEY_Device_Reported to DEVPROP_TRUE if the PnP manager automatically created the device as + /// a root-enumerated device when the non-PnP driver for the device was loaded. Otherwise, the PnP manager sets the value of the + /// property to DEVPROP_FALSE. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Legacy. + /// Windows Server 2003, Windows XP, and Windows 2000 do not support this property. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-legacy + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_Legacy = new DEVPROPKEY(0x80497100, 0x8c73, 0x48b9, 0xaa, 0xd9, 0xce, 0x38, 0x7e, 0x19, 0xc5, 0x6e, 3); + + /// + /// The DEVPKEY_Device_LegacyBusType device property represents the legacy bus number of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_LegacyBusType + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_LEGACYBUSTYPE + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_LegacyBusType to the value of the LegacyBusType member of the + /// PNP_BUS_INFORMATION structure that a bus driver returns in response to an IRP_MN_QUERY_BUS_INFORMATION request. + /// The value of DEVPKEY_Device_LegacyBusType is one of INTERFACE_TYPE enumerator values that are defined in Wdm.h and Ntddk.h. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_LegacyBusType. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_LegacyBusType + /// property key. Instead, you can use the corresponding SPDRP_LEGACYBUSTYPE identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-legacybustype + [CorrespondingType(typeof(INTERFACE_TYPE))] + public static readonly DEVPROPKEY DEVPKEY_Device_LegacyBusType = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 22); + + /// + /// The DEVPKEY_Device_LocationInfo device property represents the bus-specific physical location of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_LocationInfo + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_LOCATION_INFORMATION + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_LocationInfo to the value that the bus driver returns for a device instance in response + /// to an IRP_MN_QUERY_DEVICE_TEXT IRP. + /// + /// You can call SetupDiGetDeviceProperty and SetupDiGetDeviceProperty to retrieve and set the value of DEVPKEY_Device_LocationInfo. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_LocationInfo + /// property key. Instead, you can use the corresponding SPDRP_LOCATION_INFORMATION identifier to access the value of the property + /// on these earlier versions of Windows. For information about how to access this property value on these earlier versions of + /// Windows, see Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-locationinfo + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_LocationInfo = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 15); + + /// + /// The DEVPKEY_Device_LocationPaths device property represents the location of a device instance in the device tree. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_LocationPaths + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_LOCATION_PATHS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_LocationPaths. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_LocationPaths. + /// + /// Windows Server 2003 supports this property, but does not support the DEVPKEY_Device_LocationPaths property key. Instead, you can + /// use the corresponding SPDRP_LOCATION_PATHS identifier to access the value of the property on Windows Server 2003. For + /// information about how to access this property value on Windows Server 2003, see Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-locationpaths + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_LocationPaths = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 37); + + /// + /// + /// The DEVPKEY_Device_LowerFilters device property represents a list of the service names of the lower-level filter drivers that + /// are installed for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_LowerFilters + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_LOWERFILTERS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of the DEVPKEY_Device_LowerFilters property is set when a lower-level device filter driver is installed for a device. + /// For more information about how to install a device filter driver, see Installing a Filter Driver. + /// + /// You can call SetupDiGetDeviceProperty and SetupDiSetDeviceProperty to retrieve and set the value of DEVPKEY_Device_LowerFilters. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_LowerFilters + /// property key. Instead, you can use the corresponding SPDRP_LOWERFILTERS identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-lowerfilters + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_LowerFilters = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 20); + + /// + /// The DEVPKEY_DEVICE_Manufacturer device property represents the name of the manufacturer of a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Manufacturer + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_MFG + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DEVICE_Manufacturer is set by the manufacturer-identifier entry value for a device that is supplied by the + /// INF Manufacturer section of the INF file that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_DEVICE_Manufacturer. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_Manufacturer + /// property key. Instead, you can use the corresponding SPDRP_MFG identifier to access the value of the property on these earlier + /// versions of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-manufacturer + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_Manufacturer = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 13); + + /// + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_ManufacturerAttributes = new DEVPROPKEY(0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 4); + + /// + /// + /// The DEVPKEY_Device_MatchingDeviceId device property represents the hardware ID or compatible ID that Windows uses to install a + /// device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_MatchingDeviceId + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_MATCHINGDEVICEID MatchingDeviceId + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_MatchingDeviceId. The hardware IDs and compatible IDs for a device are supplied by the + /// device-description entries that are included in the INF Models section of the INF file that installs a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of PKEY_Device_MatchingDeviceId. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_MatchingDeviceId + /// property key. On these earlier versions of Windows, you can access the value of this property by accessing the corresponding + /// MatchingDeviceId registry value under the software key for the device instance. For information about how to access this + /// property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-matchingdeviceid + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_MatchingDeviceId = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 8); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_Model = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 39); + + /// + /// The DEVPKEY_Device_ModelId device property matches a device to a device metadata package. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_ModelId + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_GUID + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The DEVPKEY_Device_ModelId device property provides support for IHVs and OEMs to uniquely identify devices that share the same + /// manufacturer and model. By using a model identifier (ModelID), OEMs and IHVs can match the device model that they distribute to + /// their own branded device metadata package. + /// + /// + /// The DEVPKEY_Device_ModelId device property contains the value of the ModelID XML element from the device's metadata + /// package. When the device is installed, this PKEY is populated with the ModelID GUID value as reported by the device. + /// + /// For more information, see Device Metadata Packages. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-modelid + [CorrespondingType(typeof(Guid))] + public static readonly DEVPROPKEY DEVPKEY_Device_ModelId = new DEVPROPKEY(0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 2); + + /// + /// + /// The DEVPKEY_Device_NoConnectSound device property represents a Boolean value that indicates whether to suppress the sound that + /// the Microsoft Windows operating system plays to indicate that a removable device arrived or was removed. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_NoConnectSound + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_NoConnectSound is set to DEVPROP_TRUE to suppress playing sound. Otherwise, the value of the + /// property is set to DEVPROP_FALSE. + /// + /// + /// The DEVPKEY_Device_NoConnectSound property is typically set by an INF AddProperty directive in the INF file for a device. + /// + /// You can call SetupDiGetDeviceProperty or SetupDiSetDeviceProperty to retrieve or set the value of DEVPKEY_Device_NoConnectSound. + /// Windows Server 2003, Windows XP, and Windows 2000 do not support this property. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-noconnectsound + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_NoConnectSound = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 17); + + /// + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_Numa_Node = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 3); + + /// + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_Numa_Proximity_Domain = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 1); + + /// + /// The DEVPKEY_Device_Parent device property represents the device instance identifier of the parent for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Parent + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Not applicable + /// + /// + /// + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Parent property. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support this property. For information about how to retrieve + /// device relations properties on these earlier versions of Windows, see Retrieving Device Relations. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-parent + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_Parent = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 8); + + /// + /// + /// The DEVPKEY_Device_PDOName device property represents the name of the physical device object (PDO) that represents a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_PDOName + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_PHYSICAL_DEVICE_OBJECT_NAME + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_PDOName to the name of the physical name object (PDO) that represents a device. For + /// more information about PDO names, see the DeviceName parameter that is used with the IoCreateDevice routine. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_PDOName. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_PDOName property + /// key. Instead, you can use the corresponding SPDRP_PHYSICAL_DEVICE_OBJECT_NAME identifier to access the value of the property on + /// these earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, + /// see Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-pdoname + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_PDOName = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 16); + + /// + /// + /// The DEVPKEY_Device_PhysicalDeviceLocation device property encapsulates the physical device location information provided by a + /// device's firmware to Windows. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_PhysicalDeviceLocation + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BINARY + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_PHYSICAL_DEVICE_LOCATION + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_PhysicalDeviceLocation with the physical device location information. The format of the + /// information is defined in the ACPI 4.0a Specification, section 6.1.6. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_PhysicalDeviceLocation. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-physicaldevicelocation + [CorrespondingType(typeof(byte[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_PhysicalDeviceLocation = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 9); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_PostInstallInProgress = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 13); + + /// + /// The DEVPKEY_Device_PowerData device property represents power information about a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_PowerData + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BINARY + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_DEVICE_POWER_DATA + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_PowerData. The value of DEVPKEY_Device_PowerData contains a CM_POWER_DATA structure. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_PowerData. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_PowerData + /// property key. Instead, you can use the corresponding SPDRP_DEVICE_POWER_DATA identifier to access the value of the property on + /// these earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, + /// see Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-powerdata + [CorrespondingType(typeof(CM_POWER_DATA))] + public static readonly DEVPROPKEY DEVPKEY_Device_PowerData = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 32); + + /// + /// The DEVPKEY_Device_PowerRelations device property represents the power relations for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_PowerRelations + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Not applicable + /// + /// + /// + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_PowerRelations. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support this property. For information about how to retrieve + /// device relations properties on these earlier versions of Windows, see Retrieving Device Relations. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-powerrelations + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_PowerRelations = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 6); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_PresenceNotForDevice = new DEVPROPKEY(0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 5); + + /// + /// The DEVPKEY_Device_ProblemCode device property represents the problem code for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_ProblemCode + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// The value of DEVPKEY_Device_ProblemCode is one of the CM_PROB_Xxx problem codes that are defined in Cfg.h. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_ProblemCode. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support this property. For information about how to access the + /// problem code for a device instance on these earlier versions of Windows, see Retrieving the Status and Problem Code for a Device Instance. + /// + /// + /// For info on finding problem status in Device Manager or the kernel debugger, see Retrieving the Status and Problem Code for a + /// Device Instance. + /// + /// For additional information that may help with the problem code, see DEVPKEY_Device_ProblemStatus. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-problemcode + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_ProblemCode = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 3); + + /// + /// + /// The DEVPKEY_Device_ProblemStatus device property is an NTSTATUS value that is set when a problem code is generated. It provides + /// more context on why the problem code was set. If no additional context is available, ProblemStatus shows as STATUS_SUCCESS (0x00000000). + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_ProblemStatus + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_NTSTATUS + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// For info on finding problem status in Device Manager or the kernel debugger, see Retrieving the Status and Problem Code for a + /// Device Instance. + /// + /// For more info about NTSTATUS values, see Using NTSTATUS Values. + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_ProblemStatus. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-problemstatus + [CorrespondingType(typeof(NTStatus))] + public static readonly DEVPROPKEY DEVPKEY_Device_ProblemStatus = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 12); + + /// + /// The DEVPKEY_Device_RemovalPolicy device property represents the current removal policy for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_RemovalPolicy + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_REMOVAL_POLICY + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_RemovalPolicy to one of the CM_REMOVAL_POLICY_Xxx values that are defined in Cfgmgr32.h. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_RemovalPolicy property. + /// + /// Windows Server 2003 and Windows XP support this property, but do not support the DEVPKEY_Device_RemovalPolicy property key. + /// Instead, you can use the corresponding SPDRP_REMOVAL_POLICY identifier to access the value of the property on these earlier + /// versions of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-removalpolicy + [CorrespondingType(typeof(CM_REMOVAL_POLICY))] + public static readonly DEVPROPKEY DEVPKEY_Device_RemovalPolicy = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 33); + + /// + /// The DEVPKEY_Device_RemovalPolicyDefault device property represents the default removal policy for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_RemovalPolicyDefault + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_REMOVAL_POLICY_HW_DEFAULT + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_RemovalPolicyDefault to one of the CM_REMOVAL_POLICY_Xxx values that are defined in Cfgmgr32.h. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_RemovalPolicyDefault. + /// + /// Windows Server 2003 and Windows XP support this property, but do not support the DEVPKEY_Device_RemovalPolicyDefault property + /// key. Instead, you can use the corresponding SPDRP_REMOVAL_POLICY_HW_DEFAULT identifier to access the value of the property on + /// these earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, + /// see Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-removalpolicydefault + [CorrespondingType(typeof(CM_REMOVAL_POLICY))] + public static readonly DEVPROPKEY DEVPKEY_Device_RemovalPolicyDefault = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 34); + + /// + /// The DEVPKEY_Device_RemovalPolicyOverride device property represents the removal policy override for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_RemovalPolicyOverride + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_REMOVAL_POLICY_OVERRIDE + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// The value of DEVPKEY_Device_RemovalPolicyOverride is one of the CM_REMOVAL_POLICY_Xxx values that are defined in Cfgmgr32.h. + /// + /// You can retrieve the value of DEVPKEY_Device_RemovalPolicyOverride by calling SetupDiGetDeviceProperty or you can also + /// set this value by calling SetupDiSetDeviceProperty. + /// + /// + /// Windows Server 2003 and Windows XP support this property, but do not support the DEVPKEY_Device_RemovalPolicyOverride property + /// key. Instead, you can use the corresponding SPDRP_REMOVAL_POLICY_OVERRIDE identifier to access the value of the property on + /// these earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, + /// see Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-removalpolicyoverride + [CorrespondingType(typeof(CM_REMOVAL_POLICY))] + public static readonly DEVPROPKEY DEVPKEY_Device_RemovalPolicyOverride = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 35); + + /// + /// The DEVPKEY_Device_RemovalRelations device property represents the removal relations for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_RemovalRelations + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Not applicable + /// + /// + /// + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_RemovalRelations. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support this property. For information about how to retrieve + /// device relations properties on these earlier versions of Windows, see Retrieving Device Relations. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-removalrelations + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_RemovalRelations = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 5); + + /// + /// + /// The DEVPKEY_Device_Reported device property represents a Boolean value that indicates whether a device instance is a + /// root-enumerated device that the driver for the device reported to the Plug and Play (PnP) manager by calling IoReportDetectedDevice. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Reported + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The PnP manager sets the value of DEVPKEY_Device_Reported to DEVPROP_TRUE if the device is a root-enumerated device that the + /// driver for the device reported to the PnP manager by calling IoReportDetectedDevice. Otherwise, the PnP manager sets the value + /// of the property to DEVPROP_FALSE. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Reported. + /// Windows Server 2003, Windows XP, and Windows 2000 do not support this property. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-reported + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_Reported = new DEVPROPKEY(0x80497100, 0x8c73, 0x48b9, 0xaa, 0xd9, 0xce, 0x38, 0x7e, 0x19, 0xc5, 0x6e, 2); + + /// + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_ReportedDeviceIdsHash = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 8); + + /// + /// + /// The DEVPKEY_Device_ResourcePickerExceptions device property represents the resource conflicts that are allowed for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_ResourcePickerExceptions + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_RESOURCE_PICKER_EXCEPTIONS ResourcePickerExceptions + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_Device_ResourcePickerExceptions by using an INF AddReg directive that is included in the + /// INF DDInstall section of the INF file that installs a device. + /// + /// You can retrieve the value of DEVPKEY_Device_ResourcePickerExceptions by calling SetupDiGetDeviceProperty. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_Device_ResourcePickerExceptions property key. On these earlier versions of Windows, you can access the value of this + /// property by accessing the corresponding ResourcePickerExceptions registry value under the software key for the device + /// instance. For information about how to access this property value on these earlier versions of Windows, see Accessing Device + /// Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-resourcepickerexceptions + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_ResourcePickerExceptions = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 13); + + /// + /// The DEVPKEY_Device_ResourcePickerTags device property represents resource picker tags for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_ResourcePickerTags + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value identifier and registry value name + /// REGSTR_VAL_RESOURCE_PICKER_TAGS ResourcePickerTags + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_Device_ResourcePickerTags by using an INF AddReg directive that is included in the + /// INF DDInstall section of the INF file that installs a device. + /// + /// You can retrieve the value of PKEY_Device_ResourcePickerTags by calling SetupDiGetDeviceProperty. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_Device_ResourcePickerTags property key. On these earlier versions of Windows, you can access the value of this property + /// by accessing the corresponding ResourcePickerTags registry value under the software key for the device instance. For + /// information about how to access this property value on these earlier versions of Windows, see Accessing Device Driver Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-resourcepickertags + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_ResourcePickerTags = new DEVPROPKEY(0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 12); + + /// + /// + /// The DEVPKEY_Device_SafeRemovalRequired device property represents a Boolean value that indicates whether a hot-plug device + /// instance requires safe removal from the computer. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_SafeRemovalRequired + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// If this property for a hot-plug device instance has a value of DEVPROP_TRUE, the device instance requires safe removal from the + /// computer. In this case, Windows displays the Safely Remove Hardware icon in the notification area on the right side of + /// the taskbar. When the user clicks this icon, the system starts the Safely Remove Hardware program. By using this program, + /// the user can instruct the system to prepare the device instance for removal before it can be surprise-removed from the computer. + /// + /// + /// Note If the device instance is a removable media device, such as an optical disk drive, the device instance must have + /// media inserted and must have the DEVPKEY_Device_SafeRemovalRequired property value of DEVPROP_TRUE. If both are true, the device + /// instance is displayed in the Safely Remove Hardware program. + /// + /// + /// Windows Plug and Play (PnP) determines that the hot-plug device instance requires safe removal from the system if the following + /// are true: + /// + /// + /// + /// + /// The device instance is currently connected to the system. + /// + /// + /// + /// + /// The device instance is either started or can be ejected automatically by the system. + /// + /// + /// + /// + /// + /// The CM_DEVCAP_SURPRISEREMOVALOK device capability bit for the device instance is not set. For more information about device + /// capabilities, see SetupDiGetDeviceRegistryProperty. + /// + /// + /// + /// + /// + /// The device instance does not have the DEVPKEY_Device_SafeRemovalRequiredOverride device property set to DEVPROP_FALSE. + /// + /// Note PnP unconditionally determines that the hot-plug device requires safe removal if the + /// DEVPKEY_Device_SafeRemovalRequiredOverride device property is set to DEVPROP_TRUE. + /// + /// + /// + /// + /// + /// + /// The device instance is either directly removable from its parent device instance or has a removable ancestor in its device tree. + /// + /// + /// + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_SafeRemovalRequired. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-saferemovalrequired + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_SafeRemovalRequired = new DEVPROPKEY(0xafd97640, 0x86a3, 0x4210, 0xb6, 0x7c, 0x28, 0x9c, 0x41, 0xaa, 0xbe, 0x55, 2); + + /// + /// The DEVPKEY_Device_SafeRemovalRequiredOverride device property represents the safe removal override for the device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_SafeRemovalRequiredOverride + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// This device property can be used to override the result of the heuristic that Windows Plug and Play (PnP) uses to calculate the + /// value of the DEVPKEY_Device_SafeRemovalRequired device property. This override is performed as follows: + /// + /// + /// + /// + /// + /// If the DEVPKEY_Device_SafeRemovalRequiredOverride device property is set to DEVPROP_TRUE and the device instance is removable or + /// has a removable ancestor, PnP sets the DEVPKEY_Device_SafeRemovalRequired device property to DEVPROP_TRUE and does not use the heuristic. + /// + /// + /// Note A device instance is considered removable if its removable device capability is set. For more information, see + /// Overview of the Removable Device Capability. + /// + /// + /// + /// + /// + /// + /// If the DEVPKEY_Device_SafeRemovalRequiredOverride device property is set to DEVPROP_TRUE and the device instance (or an + /// ancestor) is not removable, PnP sets the DEVPKEY_Device_SafeRemovalRequired to DEVPROP_FALSE and does not use the heuristic. + /// + /// + /// + /// + /// + /// + /// If the DEVPKEY_Device_SafeRemovalRequiredOverride device property is either not set or set to DEVPROP_FALSE, PnP sets the + /// DEVPKEY_Device_SafeRemovalRequired device property to a value that is determined by using the heuristic. + /// + /// + /// + /// + /// + /// You can retrieve the value of DEVPKEY_Device_SafeRemovalRequiredOverride by calling SetupDiGetDeviceProperty. You can + /// also set this value by calling SetupDiSetDeviceProperty. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-saferemovalrequiredoverride + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_SafeRemovalRequiredOverride = new DEVPROPKEY(0xafd97640, 0x86a3, 0x4210, 0xb6, 0x7c, 0x28, 0x9c, 0x41, 0xaa, 0xbe, 0x55, 3); + + /// + /// The DEVPKEY_Device_Security device property represents a security descriptor structure for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Security + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_SECURITY_DESCRIPTOR + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_SECURITY + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_Device_Security by using an INF AddReg directive that is included in the INF + /// DDInstall.HW section of the INF file that installs a device. + /// + /// + /// You can retrieve the value of DEVPKEY_Device_Security by calling SetupDiGetDeviceProperty or you can set this property by + /// calling SetupDiSetDeviceProperty. + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_Security property + /// key. Instead, you can use the corresponding SPDRP_SECURITY identifier to access the value of the property on these earlier + /// versions of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-security + [CorrespondingType(typeof(byte[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_Security = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 25); + + /// + /// The DEVPKEY_Device_SecuritySDS device property represents a security descriptor string for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_SecuritySDS + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_SECURITY_SDS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can retrieve the value of DEVPKEY_Device_SecuritySDS by calling SetupDiGetDeviceProperty or you can also set his + /// value by calling SetupDiSetDeviceProperty. + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_SecuritySDS + /// property key. Instead, you can use the corresponding SPDRP_SECURITY_SDS identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-securitysds + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_SecuritySDS = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 26); + + /// + /// The DEVPKEY_Device_Service device property represents the name of the service that is installed for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Service + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_SERVICE + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_Device_Service is set by the service-name entry value that is supplied by the INF AddService + /// directive in the INF file that installs a service for a device. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Service. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_Service property + /// key. Instead, you can use the corresponding SPDRP_SERVICE identifier to access the value of the property on these earlier + /// versions of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-service + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_Service = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 6); + + /// + /// + /// The DEVPKEY_Device_SessionId device property represents a value that indicates the Terminal Services sessions that a device + /// instance can be accessed in. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_SessionId + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_UINT32 + /// + /// + /// Property access + /// Read and write access by applications and services. + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The Terminal Server feature supports Plug and Play (PnP) device redirection. Device redirection determines whether a device can + /// be accessed by applications and services within all Terminal Services sessions or whether a device can be accessed only within a + /// particular Terminal Services session. The accessibility of a device within a Terminal Services session is determined by the + /// setting of DEVPKEY_Device_SessionId for a device, as follows: + /// + /// + /// + /// + /// + /// If the DEVPKEY_Device_SessionId property does not exist, or the property exists, but the value of the property is not set, the + /// device can be accessed in all active Terminal Services sessions. + /// + /// + /// + /// + /// + /// + /// If the DEVPKEY_Device_SessionId property exists and the value of the property is set to a nonzero Terminal Services l session + /// identifier, the device can be accessed only in the Terminal Services session indicated by the Terminal Services session identifier. + /// + /// + /// + /// + /// + /// + /// If the DEVPKEY_Device_SessionId property exists and the value of the property is set to zero, the device can be accessed only by + /// services. Session zero is a special session in which only services can run. + /// + /// + /// + /// + /// You can access the DEVPKEY_Device_SessionId property by calling SetupDiGetDeviceProperty and SetupDiSetDeviceProperty. + /// Windows Server 2003, Windows XP, and Windows 2000 do not support this property. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-sessionid + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_SessionId = new DEVPROPKEY(0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 6); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_ShowInUninstallUI = new DEVPROPKEY(0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 8); + + /// + /// + /// The DEVPKEY_Device_Siblings device property represents a list of the device instance IDs for the devices that are siblings of a + /// device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_Siblings + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Not applicable + /// + /// + /// + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_Siblings. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support this property. For information about how to retrieve + /// device relations properties on these earlier versions of Windows, see Retrieving Device Relations. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-siblings + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_Siblings = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 10); + + /// + [CorrespondingType(typeof(int))] + public static readonly DEVPROPKEY DEVPKEY_Device_SignalStrength = new DEVPROPKEY(0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 6); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_Device_SoftRestartSupported = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 22); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_Stack = new DEVPROPKEY(0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 14); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_TransportRelations = new DEVPROPKEY(0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 11); + + /// + /// + /// The DEVPKEY_Device_UINumber device property represents a number for the device instance that can be displayed in a user + /// interface item. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_UINumber + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_UI_NUMBER + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Windows sets the value of DEVPKEY_Device_UINumber to the value of the UINumber member of the DEVICE_CAPABILITIES + /// structure for a device instance. The bus driver for a device instance returns this value in response to an + /// IRP_MN_QUERY_CAPABILITIES request. + /// + /// You can call SetupDiGetDeviceProperty to retrieve the value of DEVPKEY_Device_UINumber. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_UINumber property + /// key. Instead, you can use the corresponding SPDRP_UI_NUMBER identifier to access the value of the property on these earlier + /// versions of Windows. For information about how to access this property value on these earlier versions of Windows, see Accessing + /// Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-uinumber + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_Device_UINumber = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 18); + + /// + /// + /// The DEVPKEY_Device_UINumberDescFormat device property represents a printf-compatible format string that you should use to + /// display the value of the DEVPKEY_DEVICE_UINumber device property for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_UINumberDescFormat + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_UI_NUMBER_DESC_FORMAT + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can retrieve the value of DDEVPKEY_Device_UINumberDescFormat by calling SetupDiGetDeviceProperty or you can also set + /// this value by calling SetupDiSetDeviceProperty. + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_Device_UINumberDescFormat property key. Instead, you can use the corresponding SPDRP_UI_NUMBER_DESC_FORMAT identifier to + /// access the value of the property on these earlier versions of Windows. For information about how to access this property value + /// on these earlier versions of Windows, see Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-uinumberdescformat + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_Device_UINumberDescFormat = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 31); + + /// + /// + /// The DEVPKEY_Device_UpperFilters device property represents a list of the service names of the upper-level filter drivers that + /// are installed for a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_Device_UpperFilters + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPDRP_Xxx identifier + /// SPDRP_UPPERFILTERS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of the DEVPKEY_Device_UpperFilters property is set when an upper-level device filter driver is installed for a device. + /// For more information about how to install a device filter driver, see Installing a Filter Driver. + /// + /// You can call SetupDiGetDeviceProperty and SetupDiGetDeviceProperty to retrieve and set the value of DEVPKEY_Device_UpperFilters. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_Device_UpperFilters + /// property key. Instead, you can use the corresponding SPDRP_UPPERFILTERS identifier to access the value of the property on these + /// earlier versions of Windows. For information about how to access this property value on these earlier versions of Windows, see + /// Accessing Device Instance SPDRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-device-upperfilters + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_Device_UpperFilters = new DEVPROPKEY(0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 19); + + /// + /// + /// The DEVPKEY_DeviceClass_Characteristics device property represents the default device characteristics of all devices in a device + /// setup class. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_Characteristics + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_INT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers after a device setup class is installed + /// + /// + /// Corresponding SPCRP_Xxx identifier + /// SPCRP_CHARACTERISTICS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// DEVPKEY_DeviceClass_Characteristics should only be set when a device setup class is installed and not modified later. For + /// information about how to install a device setup class and setting this property, see INF ClassInstall32 Section and the + /// information about the registry entry value DeviceCharacteristics that is provided in the "Special value-entry-name + /// Keywords" section of INF AddReg Directive. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_Characteristics. + /// + /// Windows Server 2003 and Windows XP support this property, but do not support the DEVPKEY_DeviceClass_Characteristics property + /// key. On these earlier versions of Windows, you can use the SPCRP_CHARACTERISTICS identifier to access the value of this + /// property. For information about how to access the value of this property, see Retrieving Device Setup Class SPCRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-characteristics + [CorrespondingType(typeof(CM_FILE))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_Characteristics = new DEVPROPKEY(0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 29); + + /// + /// + /// The DEVPKEY_DeviceClass_ClassCoInstallers device property represents a list of the class co-installers that are installed for a + /// device setup class. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_ClassCoInstallers + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Data format + /// "coinstaller1.dll,coinstaller1-entry-point\0…coinstallerN.dll,coinstallerN-entry-point\0\0" + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// HLM\System\CurrentControlSet\Control\CoDeviceInstallers{device-setup-class-guid} + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// Each class installer in the class co-installer list is identified by its DLL and entry point. + /// For information about how to install a class co-installer, see Registering a Class Co-installer. + /// + /// You can retrieve the value of DEVPKEY_DeviceClass_ClassCoInstallers by calling SetupDiGetClassProperty or + /// SetupDiGetClassPropertyEx. You can set DEVPKEY_DeviceClass_ClassCoInstallers by calling SetupDiSetClassProperty or SetupDiSetClassPropertyEx. + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceClass_ClassCoInstallers property key. For information about how to access the corresponding information on these + /// earlier versions of Windows, see Accessing the Co-installers Registry Entry Value of a Device Setup Class. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-classcoinstallers + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_ClassCoInstallers = new DEVPROPKEY(0x713d1703, 0xa2e2, 0x49f5, 0x92, 0x14, 0x56, 0x47, 0x2e, 0xf3, 0xda, 0x5c, 2); + + /// + /// The DEVPKEY_DeviceClass_ClassInstaller device property represents the class installer for a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_ClassInstaller + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Data format + /// "class-installer.dll,class-entry-point" + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// Installer32 + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DeviceClass_ClassInstaller is the value of the Installer32 registry value under the class registry + /// key. This entry contains the name of the class installer DLL and the installer's entry point for the device setup class. + /// + /// + /// The Installer32 registry value for a device setup class can be set by an INF AddReg directive that is included in + /// the INF ClassInstall32 Section of the INF file that installs a device setup class. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_ClassInstaller. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceClass_ClassInstaller property key. You can access the value of this property by accessing the corresponding + /// Installer32 registry value under the class registry key. For information about how to access value entries under the + /// class registry key, see Accessing Registry Entry Values Under the Class Registry Key. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-classinstaller + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_ClassInstaller = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 5); + + /// + /// The DEVPKEY_DeviceClass_ClassName device property represents the class name of a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_ClassName + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DeviceClass_ClassName is set by the Class directive that is included in the INF Version + /// section that installs the device setup class. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_ClassName. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_DeviceClass_ClassName + /// property key. For information about how to access the name of a device setup class on Windows Server 2003, Windows XP, and + /// Windows 2000, see Accessing the Friendly Name and Class Name of a Device Setup Class. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-classname + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_ClassName = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 3); + + /// + /// The DEVPKEY_DeviceClass_DefaultService device property represents the name of the default service for a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_DefaultService + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// Default Service + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// If a default service is installed for a device setup class and a device does not install a device-specific service, the INF + /// ClassInstall32.Services section of the INF file that installs the class installs the class default service for the device. + /// + /// + /// The value of DEVPKEY_DeviceClass_DefaultService is the value of the Default Service registry value under the class + /// registry key. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_DefaultService. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceClass_DefaultService property key. You can access the value of this property by accessing the corresponding + /// Default Service registry value under the class registry key. For information about how to access value entries under the + /// class registry key, see Accessing Registry Entry Values Under the Class Registry Key. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-defaultservice + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_DefaultService = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 11); + + /// + /// The DEVPKEY_DeviceClass_DevType device property represents the default device type for a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_DevType + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_UINT32 + /// + /// + /// Property access + /// Read-only access by installation applications and installers after a device setup class is installed + /// + /// + /// Corresponding SPCRP_Xxx identifier + /// SPCRP_DEVTYPE + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_DeviceClass_DevType when an installation application installs a device setup class. For + /// information about how to install a device setup class and setting this property, see INF ClassInstall32 Section and the + /// information about the registry entry value DeviceType that is provided in the "Special value-entry-name Keywords" section + /// of INF AddReg Directive. + /// + /// + /// The value of DEVPKEY_DeviceClass_DevType is one of the FILE_DEVICE_Xxx values that are defined in Wdm.h and Ntddk.h. For more + /// information about device types, see the DeviceType parameter of the IoCreateDevice function. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_DevType. + /// + /// Windows Server 2003 and Windows XP support this property, but do not support the DEVPKEY_DeviceClass_DevType property key. On + /// these earlier versions of Windows, you can use the SPCRP_DEVTYPE identifier to access the value of this property. For + /// information about how to access the value of this property, see Retrieving Device Setup Class SPCRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-devtype + [CorrespondingType(typeof(FILE_DEVICE))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_DevType = new DEVPROPKEY(0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 27); + + /// + /// + /// The DEVPKEY_DeviceClass_DHPRebalanceOptOut device property represents a value that indicates whether an entire device class will + /// participate in resource rebalancing after a dynamic hardware partitioning (DHP) processor hot-add operation has occurred. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_DHPRebalanceOptOut + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read and write access by applications and services. + /// + /// + /// Localized? + /// No + /// + /// + /// Remarks + /// + /// On a dynamically partitionable server that is running Windows Server 2008 or later versions of Windows Server, the operating + /// system initiates a system-wide resource rebalance whenever a new processor is dynamically added to the system. The device class + /// participates in resource rebalancing under the following circumstances: + /// + /// + /// + /// + /// The DEVPKEY_DeviceClass_DHPRebalanceOptOut device property does not exist. + /// + /// + /// + /// + /// The device property exists and the value of the device property is not set. + /// + /// + /// + /// + /// The device property exists and the value of the device property is set to FALSE. + /// + /// + /// + /// + /// If the DEVPKEY_DeviceClass_DHPRebalanceOptOut device property exists and the value of the property is set to TRUE, the + /// device class does not participate in resource rebalancing when a new processor is dynamically added to the system. + /// + /// A device's device setup class is specified in the INF Version Section of the device's INF file. + /// + /// The default value for this property for the Network Adapter (Class = Net) is TRUE. The default value for this property + /// for all other device setup classes is FALSE. + /// + /// + /// This device property does not affect whether a device class participates in a resource rebalance that is initiated for other reasons. + /// + /// You can access the DEVPKEY_DeviceClass_DHPRebalanceOptOut property by calling SetupDiGetClassProperty and SetupDiSetClassProperty. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-dhprebalanceoptout + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_DHPRebalanceOptOut = new DEVPROPKEY(0xd14d3ef3, 0x66cf, 0x4ba2, 0x9d, 0x38, 0x0d, 0xdb, 0x37, 0xab, 0x47, 0x01, 2); + + /// + /// + /// The DEVPKEY_DeviceClass_Exclusive device property represents a Boolean flag that indicates whether devices that are members of a + /// device setup class are exclusive devices. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_Exclusive + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers after a device setup class is installed + /// + /// + /// Corresponding SPCRP_Xxx identifier + /// SPCRP_EXCLUSIVE + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_DeviceClass_Exclusive when an installation application installs a device setup class. For + /// information about how to install a device setup class and setting this property, see INF ClassInstall32 Section and the + /// information about the registry value Exclusive that is provided in the "Special value-entry-name Keywords" section of + /// INF AddReg Directive. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_Exclusive. + /// + /// Windows Server 2003 and Windows XP support this property, but do not support the DEVPKEY_DeviceClass_Exclusive property key. On + /// these earlier versions of Windows, you can use the SPCRP_EXCLUSIVE identifier to access the value of this property. For + /// information about how to access the value of this property, see Retrieving Device Setup Class SPCRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-exclusive + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_Exclusive = new DEVPROPKEY(0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 28); + + /// + /// The DEVPKEY_DeviceClass_Icon device property represents the icon for a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_Icon + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DeviceClass_Icon is set by an INF AddReg directive that is included in the INF ClassInstall32 + /// section that installs the class. To set the value of DEVPKEY_DeviceClass_Icon, use an AddReg directive to set the + /// Icon registry entry value for the class. + /// + /// + /// The Icon entry value is an integer number in string format. If the number is negative, the absolute value of the number + /// is the resource identifier of the icon in setupapi.dll. If the number is positive, the number is the resource identifier of the + /// icon in the class installer DLL, if there is a class installer, or the class property page provider, if there is no class + /// installer and there is a property page provider. A value of zero is not valid. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_Icon. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_DeviceClass_Icon + /// property key. For information about how to access the mini-icon for a device setup class on Windows Server 2003, Windows XP, and + /// Windows 2000, see Accessing Icon Properties of a Device Setup Class. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-icon + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_Icon = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 4); + + /// + /// The DEVPKEY_DeviceClass_IconPath device property represents an icon list for a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_IconPath + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// IconPath + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_IconPath. + /// + /// A DEVPKEY_DeviceClass_IconPath value is a REG_MULTI_SZ-typed list of icon resource specifiers in the format that is used by the + /// Windows shell. The format of an icon resource specifier is "executable-file-path,resource-identifier," where + /// executable-file-path contains the fully qualified path of the file on a computer that contains the icon resource and + /// resource-identifier specifies an integer that identifies the resource. For example, the icon resource specifier + /// "%SystemRoot%\system32\DLL1.dll,-12" contains the executable file path "%SystemRoot%\system32\DLL1.dll" and the resource + /// identifier "-12". + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not support this property. For information about how to access icon + /// information for a device setup class on these versions of Windows, see Accessing Icon Properties of a Device Setup Class. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-iconpath + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_IconPath = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 12); + + /// + /// + /// The DEVPKEY_DeviceClass_LowerFilters device property represents a list of the service names of the lower-level filter drivers + /// that are installed for a device setup class. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_LowerFilters + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Data format + /// "service-name1\0service-name2\0…service-nameN\0\0" + /// + /// + /// Property access + /// Read-only access by installation applications and installers after a class filter is installed + /// + /// + /// Corresponding SPCRP_Xxx identifier + /// SPCRP_LOWERFILTERS + /// + /// + /// Corresponding registry value name + /// LowerFilters + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DeviceClass_LowerFilters is set when a class filter driver is installed. For more information about how to + /// install a class filter driver, see Installing a Filter Driver and INF ClassInstall32 Section. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_LowerFilters. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_DeviceClass_LowerFilters + /// property key. On these earlier versions of Windows, you can access the value of this property by accessing the corresponding + /// LowerFilters registry value under the class registry key. For information about how to access this property value on + /// these earlier versions of Windows, see Accessing Registry Entry Values Under the Class Registry Key. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-lowerfilters + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_LowerFilters = new DEVPROPKEY(0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 20); + + /// + /// The DEVPKEY_DeviceClass_Name device property represents the friendly name of a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_Name + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DeviceClass_Name is set by an INF AddReg directive that is included in the INF ClassInstall32 + /// section that installs the class. To set the friendly name for a class, use an AddReg directive to set the + /// (Default) registry entry value for the class. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_Name. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_DeviceClass_Name + /// property key. For information about how to access the friendly name of a device setup class on Windows Server 2003, Windows XP, + /// and Windows 2000, see Accessing the Friendly Name and Class Name of a Device Setup Class. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-name + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_Name = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 2); + + /// + /// + /// The DEVPKEY_DeviceClass_NoDisplayClass device property represents a Boolean flag that controls whether devices in a device setup + /// class are displayed by the Device Manager. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_NoDisplayClass + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// NoDisplayClass + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// If the value of DEVPKEY_DeviceClass_NoDisplayClass is set to DEVPROP_TRUE, Device Manager does not display devices in the device + /// setup class. If this value is not set to DEVPROP_TRUE, the Device Manager does display devices in the device setup class. + /// + /// + /// The NoDisplayClass registry value for a device setup class can be set by an INF AddReg directive that is included + /// in the INF ClassInstall32 section of the INF file that installs the class. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_NoDisplayClass. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceClass_NoDisplayClass property key. You can access the value of this property by accessing the corresponding + /// NoDisplayClass registry value under the class registry key. For information about how to access value entries under the + /// class registry key, see Accessing Registry Entry Values Under the Class Registry Key. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-nodisplayclass + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_NoDisplayClass = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 8); + + /// + /// + /// The DEVPKEY_DeviceClass_NoInstallClass device setup class property represents a Boolean flag that controls whether devices in a + /// device setup class are displayed in the Add Hardware Wizard. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_NoInstallClass + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// NoInstallClass + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Setting the value of DEVPKEY_DeviceClass_NoInstallClass to DEVPROP_TRUE indicates that installation of devices in the class does + /// not require end-user interaction. If this value is not set to DEVPROP_TRUE, the Add Hardware Wizard does display devices for the + /// device setup class. + /// + /// + /// The NoInstallClass registry value for a device setup class can be set by an INF AddReg directive that is included + /// in the INF ClassInstall32 section of the INF file that installs the class. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_NoInstallClass. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceClass_NoInstallClass property key. You can access the value of this property by accessing the corresponding + /// NoInstallClass registry value under the class registry key. For information about how to access value entries under the + /// class registry key, see Accessing Registry Entry Values Under the Class Registry Key. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-noinstallclass + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_NoInstallClass = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 7); + + /// + /// + /// The DEVPKEY_DeviceClass_NoUseClass device property represents a Boolean flag that controls whether the Plug and Play (PnP) + /// manager and SetupAPI use the device setup class. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_NoUseClass + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// NoUseClass + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// If the value of DEVPKEY_DeviceClass_NoUseClass is set to 1, the PnP manager and SetupAPI do not use the device setup + /// class. Otherwise, they do use the device setup class. + /// + /// + /// The NoUseClass registry value for a device setup class is set by an INF AddReg directive that is included in the + /// INF ClassInstall32 section of the INF file that installs the class. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_NoUseClass. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_DeviceClass_NoUseClass + /// property key. You can access the value of this property by accessing the corresponding NoUseClass registry value under + /// the class registry key. For information about how to access value entries under the class registry key, see Accessing Registry + /// Entry Values Under the Class Registry Key. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-nouseclass + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_NoUseClass = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 10); + + /// + /// The DEVPKEY_DeviceClass_PropPageProvider device property represents the property page provider for a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_PropPageProvider + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Data format + /// "prop-provider.dll,provider-entry-point" + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// EnumPropPages32 + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DeviceClass_PropPageProvider is the value of the EnumPropPages32 registry value under the class + /// registry key. This value contains the name of the class property page provider DLL and the provider's entry point for the device + /// setup class. + /// + /// + /// The EnumPropPages32 registry value for a device setup class can set by an INF AddReg directive that is included in + /// the INF ClassInstall32 section of the INF file that installs the class. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_PropPageProvider. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceClass_PropPageProvider property key. You can access the value of this property by accessing the corresponding + /// EnumPropPages32 registry value under the class registry key. For information about how to access value entries under the + /// class registry key, see Accessing Registry Entry Values Under the Class Registry Key. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-proppageprovider + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_PropPageProvider = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 6); + + /// + /// The DEVPKEY_DeviceClass_Security device property represents a security descriptor structure for a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_Security + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_SECURITY_DESCRIPTOR + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPCRP_Xxx identifier + /// SPCRP_SECURITY + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_DeviceClass_Security either during or after an installation application installs a device setup + /// class. For more information about how to set this property, see Creating Secure Device Installations. + /// + /// + /// You can retrieve the value of DEVPKEY_DeviceClass_Security by calling SetupDiGetClassProperty or + /// SetupDiGetClassPropertyEx. You can set DEVPKEY_DeviceClass_Security by calling SetupDiSetClassProperty or SetupDiSetClassPropertyEx. + /// + /// + /// Windows Server 2003 and Windows XP support this property, but do not support the DEVPKEY_DeviceClass_Security property key. On + /// these earlier versions of Windows, you can use the SPCRP_SECURITY identifier to access the value of this property. For + /// information about how to access the value of this property, see Retrieving Device Setup Class SPCRP_Xxx Properties and Setting + /// Device Setup Class SPCRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-security + [CorrespondingType(typeof(byte[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_Security = new DEVPROPKEY(0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 25); + + /// + /// The DEVPKEY_DeviceClass_SecuritySDS device property represents a security descriptor string for a device setup class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_SecuritySDS + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding SPCRP_Xxx identifier + /// SPCRP_SECURITY_SDS + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_DeviceClass_SecuritySDS either during or after an installation application installs a device + /// setup class. For more information about how to set this property, see Creating Secure Device Installations. + /// + /// + /// You can retrieve the value of DEVPKEY_DeviceClass_SecuritySDS by calling SetupDiGetClassProperty or + /// SetupDiGetClassPropertyEx. You can set DEVPKEY_DeviceClass_SecuritySDS by calling SetupDiSetClassProperty or SetupDiSetClassPropertyEx. + /// + /// + /// Windows Server 2003 and Windows XP support this property, but do not support the DEVPKEY_DeviceClass_SecuritySDS property key. + /// On these earlier versions of Windows, you can use the SPCRP_SECURITY_SDS identifier to access the value of this property. For + /// information about how to access the value of this property, see Retrieving Device Setup Class SPCRP_Xxx Properties and Setting + /// Device Setup Class SPCRP_Xxx Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-securitysds + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_SecuritySDS = new DEVPROPKEY(0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 26); + + /// + /// + /// The DEVPKEY_DeviceClass_SilentInstall device property represents a Boolean flag that controls whether devices in a device setup + /// class should be installed, if possible, without displaying any user interface items. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_SilentInstall + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// SilentInstall + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// If the value of DEVPKEY_DeviceClass_SilentInstall is set to DEVPROP_TRUE, Windows installs a driver for a device without + /// displaying any user interface items if the driver is already preinstalled in the driver store. Otherwise, Windows does not + /// suppress the display of user interface items. + /// + /// + /// The SilentInstall registry value for a device setup class can be set by an INF AddReg directive that is included + /// in the INF ClassInstall32 section of the INF file that installs the class. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_SilentInstall. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceClass_SilentInstall property key. You can access the value of this property by accessing the corresponding + /// SilentInstall registry value under the class registry key. For information about how to access value entries under the + /// class registry key, see Accessing Registry Entry Values Under the Class Registry Key. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-silentinstall + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_SilentInstall = new DEVPROPKEY(0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 9); + + /// + /// + /// The DEVPKEY_DeviceClass_UpperFilters device property represents a list of the service names of the upper-level filter drivers + /// that are installed for a device setup class. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceClass_UpperFilters + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Data format + /// "service-name1\0service-name2\0…service-nameN\0\0" + /// + /// + /// Property access + /// Read-only access by installation applications and installers after a class filter is installed + /// + /// + /// Corresponding SPCRP_Xxx identifier + /// SPCRP_UPPERFILTERS + /// + /// + /// Corresponding registry value name + /// UpperFilters + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The value of DEVPKEY_DeviceClass_UpperFilters is set when a class filter driver is installed. For more information about how to + /// install a class filter driver, see Installing a Filter Driver and INF ClassInstall32 Section. + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_DeviceClass_UpperFilters. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_DeviceClass_UpperFilters + /// property key. On these earlier versions of Windows, you can access the value of this property by accessing the corresponding + /// UpperFilters registry value under the class registry key. For information about how to access this property value on + /// these earlier versions of Windows, see Accessing Registry Entry Values Under the Class Registry Key. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceclass-upperfilters + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceClass_UpperFilters = new DEVPROPKEY(0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 19); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Address = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 51); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_AlwaysShowDeviceAsConnected = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 101); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_AssociationArray = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 80); + + /// + [CorrespondingType(typeof(Guid))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_BaselineExperienceId = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 78); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Category = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 90); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Category_Desc_Plural = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 92); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Category_Desc_Singular = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 91); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Category_Icon = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 93); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_CategoryGroup_Desc = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 94); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_CategoryGroup_Icon = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 95); + + /// + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_ConfigFlags = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 105); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_CustomPrivilegedPackageFamilyNames = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 107); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_DeviceDescription1 = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 81); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_DeviceDescription2 = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 82); + + /// + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_DeviceFunctionSubRank = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 100); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_DiscoveryMethod = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 52); + + /// + [CorrespondingType(typeof(Guid))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_ExperienceId = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 89); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_FriendlyName = new DEVPROPKEY(0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 12288); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_HasProblem = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 83); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Icon = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 57); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_InstallInProgress = new DEVPROPKEY(0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 9); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsAuthenticated = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 54); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsConnected = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 55); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsDefaultDevice = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 86); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsDeviceUniquelyIdentifiable = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 79); + + // DE + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsEncrypted = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 53); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsLocalMachine = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 70); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsMetadataSearchInProgress = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 72); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsNetworkDevice = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 85); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsNotInterestingForDisplay = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 74); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsPaired = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 56); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsRebootRequired = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 108); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsSharedDevice = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 84); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_IsShowInDisconnectedState = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 68); + + /// + [CorrespondingType(typeof(FILETIME))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Last_Connected = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 67); + + /// + [CorrespondingType(typeof(FILETIME))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Last_Seen = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 66); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_LaunchDeviceStageFromExplorer = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 77); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_LaunchDeviceStageOnDeviceConnect = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 76); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Manufacturer = new DEVPROPKEY(0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 8192); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_MetadataCabinet = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 87); + + /// + [CorrespondingType(typeof(byte[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_MetadataChecksum = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 73); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_MetadataPath = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 71); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_ModelName = new DEVPROPKEY(0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 8194); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_ModelNumber = new DEVPROPKEY(0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 8195); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_PrimaryCategory = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 97); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_PrivilegedPackageFamilyNames = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 106); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_RequiresPairingElevation = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 88); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_RequiresUninstallElevation = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 99); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_UnpairUninstall = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 98); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceContainer_Version = new DEVPROPKEY(0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 65); + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceDisplay_AlwaysShowDeviceAsConnected = DEVPKEY_DeviceContainer_AlwaysShowDeviceAsConnected; + + /// + /// + /// The DEVPKEY_DeviceDisplay_Category device property represents one or more functional categories that apply to a device instance. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceDisplay_Category + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers. + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// Device categories for a physical device are specified through the DeviceCategory XML element in a device metadata + /// package. Each instance of that device in a system inherits the device categories for that physical device. + /// + /// + /// Each physical device can have one or more functional categories specified in the device metadata package. Each category is used + /// by Windows Devices and Printers to group the device instance into one of the recognized device categories. + /// + /// + /// Multifunction devices would typically identify multiple functional categories for each hardware function that the device + /// supports. For example, a multifunction device could identify functional categories for printer, fax, scanner, and removable + /// storage device functionality. + /// + /// + /// The first functional category string in the DEVPROP_TYPE_STRING_LIST specifies the physical device's primary functional + /// category. The primary functional category is defined by the independent hardware vendor (IHV) to specify how the device is + /// advertised, packaged, sold, and ultimately identified by users. + /// + /// + /// If the DEVPKEY_DeviceDisplay_Category device property specifies more than one functional category string, the remaining strings + /// that follow the first string specifies the physical device's secondary functional categories. + /// + /// + /// The Devices and Printers user interface in Control Panel displays the primary and secondary functional categories of the + /// device instance. These categories are displayed in the order that is specified in the DEVPKEY_DeviceDisplay_Category device property. + /// + /// You can access the DEVPKEY_DeviceDisplay_Category property by calling SetupDiGetDeviceProperty. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-devicedisplay-category + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceDisplay_Category = DEVPKEY_DeviceContainer_Category; + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceDisplay_DiscoveryMethod = DEVPKEY_DeviceContainer_DiscoveryMethod; + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceDisplay_IsNetworkDevice = DEVPKEY_DeviceContainer_IsNetworkDevice; + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceDisplay_IsNotInterestingForDisplay = DEVPKEY_DeviceContainer_IsNotInterestingForDisplay; + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceDisplay_IsShowInDisconnectedState = DEVPKEY_DeviceContainer_IsShowInDisconnectedState; + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceDisplay_RequiresUninstallElevation = DEVPKEY_DeviceContainer_RequiresUninstallElevation; + + /// + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceDisplay_UnpairUninstall = DEVPKEY_DeviceContainer_UnpairUninstall; + + /// + /// The DEVPKEY_DeviceInterface_ClassGuid device property represents the GUID that identifies a device interface class. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceInterface_ClassGuid + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_GUID + /// + /// + /// Property access + /// Read-only by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// The format of {device-interface-class} key value is "{nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}", where each n is a hexadecimal digit. + /// + /// You can call SetupDiGetDeviceInterfaceProperty to retrieve the value of DEVPKEY_DeviceInterface_ClassGuid. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceInterface_ClassGuid property key. For information about how to retrieve the class GUID of a device interface on + /// these earlier versions of Windows, see the information about how to use SetupDiEnumDeviceInterfaces that is provided in + /// Accessing Device Interface Properties. + /// + /// + /// For information about how to install and accessing device interfaces, see Device Interface Classes and the INF AddInterface Directive. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceinterface-classguid + [CorrespondingType(typeof(Guid))] + public static readonly DEVPROPKEY DEVPKEY_DeviceInterface_ClassGuid = new DEVPROPKEY(0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 4); + + /// + /// + /// The DeviceInterfaceEnabled device property represents a Boolean flag that indicates whether a device interface is enabled. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceInterface_Enabled + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// If the value of DEVPKEY_DeviceInterface_Enabled is DEVPROP_TRUE, the interface is enabled. Otherwise, the interface is not enabled. + /// + /// You can call SetupDiGetDeviceInterfaceProperty to retrieve the value of DEVPKEY_DeviceInterface_Enabled. + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the DEVPKEY_DeviceInterface_Enabled + /// property key. For information about how to retrieve the activity status of a device interface on these earlier versions of + /// Windows, see the information about how to use SetupDiEnumDeviceInterfaces that is provided in Accessing Device Interface Properties. + /// + /// For more information about device interfaces, see Device Interface Classes and the INF AddInterface Directive. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceinterface-enabled + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceInterface_Enabled = new DEVPROPKEY(0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 3); + + /// + /// The DEVPKEY_DeviceInterface_FriendlyName device property represents the friendly name of a device interface. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceInterface_FriendlyName + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Corresponding registry value name + /// FriendlyName + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// + /// The FriendlyName registry value for a device interface class is set by an INF AddInterface directive that is + /// included in the INF DDInstall.Interface section of the INF file that installs a device interface. + /// + /// + /// Windows sets the value of the DEVPKEY_NAME device property for an interface to the value of + /// DEVPKEY_DeviceInterface_FriendlyName. To identify a device interface in a user interface item, use the value of DEVPKEY_NAME for + /// the device interface instead of the value of DEVPKEY_DeviceInterface_FriendlyName. + /// + /// + /// You can retrieve the value of the DEVPKEY_DeviceInterface_FriendlyName by calling SetupDiGetDeviceInterfaceProperty and + /// set it by calling SetupDiSetDeviceInterfaceProperty. + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceInterface_FriendlyName property key. You can access the value of this property by accessing the corresponding + /// FriendlyName registry entry value for the device interface. For information about how to access a registry entry value + /// for a device interface, see Accessing Device Interface Properties. + /// + /// For information about device interfaces, see Device Interface Classes and the INF AddInterface Directive. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceinterface-friendlyname + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceInterface_FriendlyName = new DEVPROPKEY(0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 2); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceInterface_ReferenceString = new DEVPROPKEY(0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 5); + + /// + /// + /// The DEVPKEY_DeviceInterface_Restricted device interface property indicates that the device interface on which it is present and + /// set to TRUE, should be treated with privileged access by system components that honor the setting. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceInterface_Restricted + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_BOOLEAN + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// You can call SetupDiGetDeviceInterfaceProperty to retrieve the value of DEVPKEY_DeviceInterface_Restricted. + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceinterface-restricted + [CorrespondingType(typeof(bool))] + public static readonly DEVPROPKEY DEVPKEY_DeviceInterface_Restricted = new DEVPROPKEY(0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 6); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceInterface_SchematicName = new DEVPROPKEY(0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 9); + + /// + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DeviceInterface_UnrestrictedAppCapabilities = new DEVPROPKEY(0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 8); + + /// + /// + /// The DEVPKEY_DeviceInterfaceClass_DefaultInterface device property represents the symbolic link name of the default device + /// interface for a device interface class. + /// + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DeviceInterfaceClass_DefaultInterface + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read and write access by installation applications and installers + /// + /// + /// Localized? + /// No + /// + /// + /// + /// + /// + /// For information about how to install and using device interfaces, see Device Interface Classes and the INF AddInterface Directive. + /// + /// + /// You can retrieve the value of DEVPKEY_DeviceInterfaceClass_DefaultInterface by calling SetupDiGetDeviceInterfaceProperty. + /// You can set DEVPKEY_DeviceInterfaceClass_DefaultInterface by calling SetupDiSetDeviceInterfaceProperty. + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 support this property, but do not support the + /// DEVPKEY_DeviceInterfaceClass_DefaultInterface property key. For information about how to access the default interface of a + /// device interface class on these earlier versions of Windows, see Accessing Device Interface Class Properties. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-deviceinterface-defaultinterface + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceInterfaceClass_DefaultInterface = new DEVPROPKEY(0x14c83a99, 0x0b3f, 0x44b7, 0xbe, 0x4c, 0xa1, 0x78, 0xd3, 0x99, 0x05, 0x64, 2); + + /// + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DeviceInterfaceClass_Name = new DEVPROPKEY(0x14c83a99, 0x0b3f, 0x44b7, 0xbe, 0x4c, 0xa1, 0x78, 0xd3, 0x99, 0x05, 0x64, 3); + + /// + [CorrespondingType(typeof(uint))] + public static readonly DEVPROPKEY DEVPKEY_DevQuery_ObjectType = new DEVPROPKEY(0x13673f42, 0xa3d6, 0x49f6, 0xb4, 0xda, 0xae, 0x46, 0xe0, 0xc5, 0x23, 0x7c, 2); + + /// + /// The DEVPKEY_DrvPkg_BrandingIcon device property represents a list of icons that associate a device instance with a vendor. + /// + /// + /// Property key + /// DEVPKEY_DrvPkg_BrandingIcon + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// A branding icon can be specified as an .ico file or as a resource within an executable file. + /// The format of an icon list is the same as that described for the DEVPKEY_DrvPkg_Icon device property. + /// + /// You can set the value of DEVPKEY_DrvPkg_BrandingIcon by an INF AddProperty directive that is included in the INF + /// DDInstall section of the INF file that installs a device. You can retrieve the value of DEVPKEY_DrvPkg_BrandingIcon by + /// calling SetupDiGetDeviceProperty. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-drvpkg-brandingicon + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DrvPkg_BrandingIcon = new DEVPROPKEY(0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 7); + + /// + /// + /// The DEVPKEY_DrvPkg_DetailedDescription device property represents a detailed description of the capabilities of a device instance. + /// + /// + /// + /// Property key + /// DEVPKEY_DrvPkg_DetailedDescription + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Data format + /// Limited set of XML tags + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// + /// The detailed description string is in XML format. XML format makes it possible for Windows to format the display of the + /// information based on the following subset of supported Hypertext Markup Language (HTML) tags. The operation of these tags + /// resembles the operation of HTML tags. + /// + /// Heading level tags <h1>, <h2>, <h3> + /// List tags <ul>, <ol>, <li> + /// Paragraph tag <p> + /// + /// You can set the value of DEVPKEY_DrvPkg_DetailedDescription by an INF AddProperty directive that is included in the + /// INF DDInstall section of the INF file that installs the device. You can retrieve the value of + /// DEVPKEY_DrvPkg_DetailedDescription by calling SetupDiGetDeviceProperty. + /// + /// + /// The following is an example of how to use an INF AddProperty directive to set the value of + /// DEVPKEY_DrvPkg_DetailedDescription for a device instance that is installed by an INF DDInstall section "SampleDDInstallSection": + /// + /// + /// [SampleDDinstallSection] ... AddProperty=SampleAddPropertySection ... [SampleAddPropertySection] DeviceDetailedDescription,,,,"<xml><h1>Microsoft DiscoveryCam 530</h1><h2>Overview<h2>The Microsoft DiscoveryCam is great.<p>Really.<p><h2>Features</h2>The Microsoft DiscoveryCam has three features.<ol><li>Feature 1</li><li>Feature 2</li><li>Feature 3</li></ol></xml>" ... + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-drvpkg-detaileddescription + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DrvPkg_DetailedDescription = new DEVPROPKEY(0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 4); + + /// + /// The DEVPKEY_DrvPkg_DocumentationLink device property represents a URL to the documentation for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DrvPkg_DocumentationLink + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// + /// The documentation link URL should be a link to a file that contains information about a device. This property is intended to + /// provide Web-accessible documentation for a device. The file can be an HTML page, a .pdf file, a .doc file, or other file type. + /// The only restriction is that all the documentation content must be contained within the URL-specified file. For example, an + /// *.htm file that is self-contained is valid, an *.htm file that refers to other graphics files is not valid, and an *.mta Web + /// archive file that contains referenced graphic files is valid. + /// + /// + /// The URL can contain parameters. For example, the following URL contains a prod parameter that supplies the value + /// "DSC530", a rev parameter that supplies the value "34", and a type parameter that supplies the value "doc": + /// + /// + /// http://www.microsoft.com/redirect?prod=DSC530&rev=34&type=docs + /// + /// + /// Microsoft does not provide Web hosting or redirection for a webpage that is specified by a DEVPKEY_DrvPkg_DocumentationLink + /// property value. The URL must link to a webpage that is maintained by the driver package provider. + /// + /// + /// When a user clicks the website link that is displayed in Setup-generated end-user dialog box, Windows adds the following + /// information to the HTTP request that includes the URL supplied by DEVPKEY_DrvPkg_DocumentationLink: + /// + /// + /// + /// + /// The Windows version, as specified by a pver parameter. For example, "pver=6.0" specifies Windows Vista. + /// + /// + /// + /// + /// + /// The stock keeping unit (SKU), as specified by the sbp parameter, which can be set to per or pro. For example, "sbp=pro" + /// specifies the professional edition. + /// + /// + /// + /// + /// + /// + /// The local identifier (LCID), as specified by the olcid parameter. For example, "olcid=0x409" specifies the English + /// (Standard) language. + /// + /// + /// + /// + /// + /// + /// The most specific hardware identifier for a device, as specified by the pnpid parameter. For example, + /// "pnpid=PCI%5CVEN_8086%26DEV_2533%26SUBSYS_00000000%26REV_04" specifies the hardware identifier for a PCI device. + /// + /// + /// + /// + /// For privacy reasons, user information and the serial number of device is not included in the HTTP request. + /// + /// The following example shows the type of HTTP request that would be sent to a web server: http://www.microsoft.com/redirect?prod=DSC530&rev34&type=docs&pver=6.0&spb=pro&olcid=0x409&pnpid=PCI%5CVEN_8086%26DEV_2533%26SUBSYS_00000000%26REV_04 + /// + /// + /// You can set the value of DEVPKEY_DrvPkg_DocumentationLink by an INF AddProperty directive that is included in the INF + /// DDInstall section of the INF file that installs the device. You can retrieve the value of + /// DEVPKEY_DrvPkg_DocumentationLinkproperty by calling SetupDiGetDeviceProperty. + /// + /// + /// The following is an example of how to use an INF AddProperty directive to set the value of + /// DEVPKEY_DrvPkg_DocumentationLink for a device that is installed by an INF DDInstall section "SampleDDInstallSection": + /// + /// + /// [SampleDDinstallSection] ... AddProperty=SampleAddPropertySection ... [SampleAddPropertySection] DeviceDocumentationLink,,,,"http://www.microsoft.com/redirect?prod=DSC530&rev34&type="docs" ... + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-drvpkg-documentationlink + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DrvPkg_DocumentationLink = new DEVPROPKEY(0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 5); + + /// + /// + /// The DEVPKEY_DrvPkg_Icon device property represents a list of device icons that Windows uses to visually represent a device instance. + /// + /// + /// + /// Property key + /// DEVPKEY_DrvPkg_Icon + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING_LIST + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// + /// Each icon in the list is specified by a path of an icon file (*.ico) or a reference to an icon resource in an executable file. + /// + /// + /// The first icon in the list is used as the default. Additional icons can be supplied that provide different visual + /// representations of a device. Windows includes a user interface that allows a user to select which icon Windows displays. For + /// example, the Microsoft DiscoveryCam 530 is available in blue, green, and red. Microsoft supplies an icon for each color. Windows + /// uses the blue icon by default because it is the first one in the list. However, Windows users can also choose the green icon or + /// the red icon. + /// + /// + /// The icon list is a NULL-separated list of icon specifiers. An icon specifier is either a path of an icon file (*.ico) or an + /// icon-resource specifier, as follows: + /// + /// + /// + /// + /// The format of the path to an icon file is DirectoryPath\filename.ico. + /// + /// + /// + /// + /// An icon-resource specifier has the following entries: + /// + /// The first character of icon-resource specifier is the at sign (@) followed by the path of an executable file (an *.exe or a + /// *.dll file), followed by a comma separator (,), and then the resource-identifier entry. + /// + /// + /// + /// + /// + /// For example, the icon specifier"@shell32.dll,-30" represents the executable file "shell32.dll" and the resource identifier "-30". + /// + /// A resource identifier must be an integer value, which corresponds to a resource within the executable file, as follows: + /// + /// + /// + /// + /// If the supplied identifier is negative, Windows uses the resource in the executable file whose identifier is equal to the + /// absolute value of the supplied identifier. + /// + /// + /// + /// + /// + /// + /// If the supplied identifier is zero, Windows uses the resource in the executable file whose identifier has the lowest value in + /// the execuable file. + /// + /// + /// + /// + /// + /// + /// If the supplied identifier is positive, for example, the value n, Windows uses the resource in the executable file whose + /// identifier is the n+1 lowest value in the executable file. For example, if the value of n is 1, Windows uses the resource whose + /// identifier has the second lowest value in the executable file. + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_DrvPkg_Icon by an INF AddProperty directive that is included in the INF DDInstall + /// section of the INF file that installs the device. You can retrieve the value of DEVPKEY_DrvPkg_Icon by calling SetupDiGetDeviceProperty. + /// + /// + /// The following is an example of how to use an INF AddProperty directive to set DEVPKEY_DrvPkg_Icon for a device that is + /// installed by an INF DDInstall section "SampleDDInstallSection": + /// + /// + /// [SampleDDinstallSection] ... AddProperty=SampleAddPropertySection ... [SampleAddPropertySection] DeviceIcon,,,,"SomeResource.dll,-2","SomeIcon.icon" ... + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-drvpkg-icon + [CorrespondingType(typeof(string[]))] + public static readonly DEVPROPKEY DEVPKEY_DrvPkg_Icon = new DEVPROPKEY(0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 6); + + /// + /// The DEVPKEY_DrvPkg_Model device driver package property represents the model name for a device instance. + /// + /// + /// Property key + /// DEVPKEY_DrvPkg_Model + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// + /// You can set the value of DEVPKEY_DrvPkg_Model by an INF AddProperty directive that is included in the INF DDInstall + /// section of the INF file that installs the device. You can retrieve the value of the DEVPKEY_DrvPkg_Model property by calling SetupDiGetDeviceProperty. + /// + /// + /// The following is an example of how to use an INF AddProperty directive to set the value of DEVPKEY_DrvPkg_Model for a + /// device that is installed by an INF DDInstall section "SampleDDInstallSection": + /// + /// + /// [SampleDDinstallSection] ... AddProperty=SampleAddPropertySection ... [SampleAddPropertySection] DeviceModel,,,,"DSC-530" ... + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-drvpkg-model + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DrvPkg_Model = new DEVPROPKEY(0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 2); + + /// + /// The DEVPKEY_DrvPkg_VendorWebSite device property represents a vendor URL for a device instance. + /// + /// + /// Attribute + /// Value + /// + /// + /// Property key + /// DEVPKEY_DrvPkg_VendorWebSite + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING"> + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// + /// The URL can be a link to the root of the vendor website, a webpage within a website, or a redirection page. The URL can also + /// contain parameters, for example, the following URL contains a prod parameter that supplies the product identifier + /// "DSC530" and a rev parameter that supplies the number "34": + /// + /// + /// http://www.microsoft.com/redirect?prod=DSC530&rev=34 + /// + /// + /// You can set the value of DEVPKEY_DrvPkg_VendorWebSite by an INF AddProperty directive that is included in the INF + /// DDInstall section of the INF file that installs the device. You can retrieve the value of DEVPKEY_DrvPkg_VendorWebSite by + /// calling SetupDiGetDeviceProperty. + /// + /// + /// The following is an example of how to use an INF AddProperty directive to set the DEVPKEY_DrvPkg_VendorWebSite property + /// value for a device that is installed by an INF DDInstall section "SampleDDInstallSection": + /// + /// + /// [SampleDDinstallSection] ... AddProperty=SampleAddPropertySection ... [SampleAddPropertySection] DeviceVendorWebsite,,,,"http://www.microsoft.com/redirect?prod=DSC530&rev=34" ... + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-drvpkg-vendorwebsite + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_DrvPkg_VendorWebSite = new DEVPROPKEY(0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 3); + + /// + /// The DEVPKEY_NAME device property represents the name of a device setup class. + /// + /// + /// Property key + /// DEVPKEY_NAME + /// + /// + /// Property-data-type identifier + /// DEVPROP_TYPE_STRING + /// + /// + /// Property access + /// Read-only access by installation applications and installers + /// + /// + /// Localized? + /// Yes + /// + /// + /// + /// + /// You can use the value of DEVPKEY_NAME to identify a device setup class to an end-user in a user interface item. + /// + /// If DEVPKEY_DeviceClass_Name is set, the value of DEVPKEY_NAME is the same as the value of the DEVPKEY_DeviceClass_Name + /// device property. Otherwise, the DEVPKEY_NAME value is the same as the value of the DEVPKEY_DeviceClass_ClassName device property. + /// + /// + /// You can call SetupDiGetClassProperty or SetupDiGetClassPropertyEx to retrieve the value of DEVPKEY_NAME for a + /// device setup class. + /// + /// + /// Windows Server 2003, Windows XP, and Windows 2000 do not directly support a corresponding name property. However, these earlier + /// versions of Windows do support properties that correspond to DEVPKEY_DeviceClass_Name and DEVPKEY_DeviceClass_ClassName. + /// + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpkey-name--device-setup-class- + [CorrespondingType(typeof(string))] + public static readonly DEVPROPKEY DEVPKEY_NAME = new DEVPROPKEY(0xb725f130, 0x47ef, 0x101a, 0xa5, 0xf1, 0x02, 0x60, 0x8c, 0x9e, 0xeb, 0xac, 10); + } +} \ No newline at end of file diff --git a/PInvoke/SetupAPI/DevPropDef.cs b/PInvoke/SetupAPI/DevPropDef.cs new file mode 100644 index 00000000..25fc5b6b --- /dev/null +++ b/PInvoke/SetupAPI/DevPropDef.cs @@ -0,0 +1,76 @@ +using System; +using System.Runtime.InteropServices; + +namespace Vanara.PInvoke +{ + public static partial class SetupAPI + { + /// + /// In Windows Vista and later versions of Windows, the DEVPROPKEY structure represents a device property key for a device property + /// in the unified device property model. + /// + /// + /// The DEVPROPKEY structure is part of the unified device property model. + /// The basic set of system-supplied device property keys are defined in Devpkey.h. + /// The DEFINE_DEVPROPKEY macro creates an instance of a DEVPROPKEY structure that represents a device property key. + /// + // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpropkey struct DEVPROPKEY { DEVPROPGUID fmtid; DEVPROPID + // pid; }; + [PInvokeData("Devpropdef.h")] + [StructLayout(LayoutKind.Sequential)] + public struct DEVPROPKEY : IEquatable + { + /// + /// A DEVPROPGUID-typed value that specifies a property category. + /// The DEVPROPGUID data type is defined as: + /// + public Guid fmtid; + + /// + /// + /// pid A DEVPROPID-typed value that uniquely identifies the property within the property category. For internal system + /// reasons, a property identifier must be greater than or equal to two. + /// + /// The DEVPROPID data type is defined as: + /// + public uint pid; + + /// Initializes a new instance of the struct. + /// Guid value. + /// Guid value. + /// Guid value. + /// Guid value. + /// Guid value. + /// Guid value. + /// Guid value. + /// Guid value. + /// Guid value. + /// Guid value. + /// Guid value. + /// The pid. + public DEVPROPKEY(uint a, ushort b, ushort c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k, uint pid) + { + fmtid = new Guid(a, b, c, d, e, f, g, h, i, j, k); + this.pid = pid; + } + + /// Determines whether the specified , is equal to this instance. + /// The to compare with this instance. + /// + /// if the specified is equal to this instance; otherwise, . + /// + public override bool Equals(object obj) => obj is DEVPROPKEY pk && Equals(pk); + + /// Determines whether the specified , is equal to this instance. + /// The property key. + /// + /// if the specified is equal to this instance; otherwise, . + /// + public bool Equals(DEVPROPKEY pk) => pk.pid == pid && pk.fmtid == fmtid; + + /// Returns a hash code for this instance. + /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + public override int GetHashCode() => (pid, fmtid).GetHashCode(); + } + } +} \ No newline at end of file diff --git a/PInvoke/SetupAPI/SetupAPI.DiFuncs.cs b/PInvoke/SetupAPI/SetupAPI.DiFuncs.cs index 87da3174..e5b00d91 100644 --- a/PInvoke/SetupAPI/SetupAPI.DiFuncs.cs +++ b/PInvoke/SetupAPI/SetupAPI.DiFuncs.cs @@ -205,7 +205,7 @@ namespace Vanara.PInvoke [DllImport(Lib_SetupAPI, SetLastError = true, CharSet = CharSet.Auto)] [PInvokeData("setupapi.h", MSDNShortId = "NF:setupapi.SetupDiBuildClassInfoListExA")] [return: MarshalAs(UnmanagedType.Bool)] - public static extern bool SetupDiBuildClassInfoListExA(DIBCI Flags, [Out, Optional, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] Guid[] ClassGuidList, + public static extern bool SetupDiBuildClassInfoListEx(DIBCI Flags, [Out, Optional, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] Guid[] ClassGuidList, uint ClassGuidListSize, out uint RequiredSize, [Optional, MarshalAs(UnmanagedType.LPTStr)] string MachineName, IntPtr Reserved = default); /// @@ -1212,7 +1212,8 @@ namespace Vanara.PInvoke [DllImport(Lib_SetupAPI, SetLastError = true, CharSet = CharSet.Auto)] [PInvokeData("setupapi.h", MSDNShortId = "NF:setupapi.SetupDiCreateDeviceInterfaceRegKeyA")] public static extern HKEY SetupDiCreateDeviceInterfaceRegKey(HDEVINFO DeviceInfoSet, in SP_DEVICE_INTERFACE_DATA DeviceInterfaceData, - [Optional] uint Reserved, System.Security.AccessControl.RegistryRights samDesired, [In, Optional] HINF InfHandle, [In, Optional, MarshalAs(UnmanagedType.LPTStr)] string InfSectionName); + [Optional] uint Reserved, System.Security.AccessControl.RegistryRights samDesired, [In, Optional] HINF InfHandle, + [In, Optional, MarshalAs(UnmanagedType.LPTStr)] string InfSectionName); /// /// The SetupDiCreateDevRegKey function creates a registry key for device-specific configuration information and returns a @@ -1749,7 +1750,8 @@ namespace Vanara.PInvoke [DllImport(Lib_SetupAPI, SetLastError = true, ExactSpelling = true)] [PInvokeData("setupapi.h", MSDNShortId = "NF:setupapi.SetupDiEnumDeviceInterfaces")] [return: MarshalAs(UnmanagedType.Bool)] - public static extern bool SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, in SP_DEVINFO_DATA DeviceInfoData, in Guid InterfaceClassGuid, uint MemberIndex, ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData); + public static extern bool SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, in SP_DEVINFO_DATA DeviceInfoData, in Guid InterfaceClassGuid, + uint MemberIndex, ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData); /// /// The SetupDiEnumDeviceInterfaces function enumerates the device interfaces that are contained in a device information set. @@ -1802,7 +1804,8 @@ namespace Vanara.PInvoke [DllImport(Lib_SetupAPI, SetLastError = true, ExactSpelling = true)] [PInvokeData("setupapi.h", MSDNShortId = "NF:setupapi.SetupDiEnumDeviceInterfaces")] [return: MarshalAs(UnmanagedType.Bool)] - public static extern bool SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, [In, Optional] IntPtr DeviceInfoData, in Guid InterfaceClassGuid, uint MemberIndex, ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData); + public static extern bool SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, [In, Optional] IntPtr DeviceInfoData, in Guid InterfaceClassGuid, + uint MemberIndex, ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData); /// /// The SetupDiEnumDeviceInterfaces function enumerates the device interfaces that are contained in a device information set. @@ -1828,7 +1831,8 @@ namespace Vanara.PInvoke /// See System Defined Device Interface Classes for a list of available device interface classes. /// [PInvokeData("setupapi.h", MSDNShortId = "NF:setupapi.SetupDiEnumDeviceInterfaces")] - public static IEnumerable SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, Guid InterfaceClassGuid, SP_DEVINFO_DATA? DeviceInfoData = null) + public static IEnumerable SetupDiEnumDeviceInterfaces(HDEVINFO DeviceInfoSet, Guid InterfaceClassGuid, + SP_DEVINFO_DATA? DeviceInfoData = null) { using var dvidata = DeviceInfoData.HasValue ? new SafeCoTaskMemStruct(DeviceInfoData.Value) : SafeCoTaskMemStruct.Null; var data = new SP_DEVICE_INTERFACE_DATA { cbSize = (uint)Marshal.SizeOf(typeof(SP_DEVICE_INTERFACE_DATA)) }; @@ -2825,7 +2829,8 @@ namespace Vanara.PInvoke // SetupDiGetClassDevsW( const GUID *ClassGuid, PCWSTR Enumerator, HWND hwndParent, DWORD Flags ); [DllImport(Lib_SetupAPI, SetLastError = true, CharSet = CharSet.Auto)] [PInvokeData("setupapi.h", MSDNShortId = "NF:setupapi.SetupDiGetClassDevsW")] - public static extern SafeHDEVINFO SetupDiGetClassDevs([In, Optional] IntPtr ClassGuid, [In, Optional] string Enumerator, [In, Optional] HWND hwndParent, DIGCF Flags); + public static extern SafeHDEVINFO SetupDiGetClassDevs([In, Optional] IntPtr ClassGuid, [In, Optional] string Enumerator, + [In, Optional] HWND hwndParent, DIGCF Flags); /// /// The SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device diff --git a/PInvoke/SetupAPI/SetupAPI.DiFuncs2.cs b/PInvoke/SetupAPI/SetupAPI.DiFuncs2.cs index d949c2b5..0449bd01 100644 --- a/PInvoke/SetupAPI/SetupAPI.DiFuncs2.cs +++ b/PInvoke/SetupAPI/SetupAPI.DiFuncs2.cs @@ -1478,45 +1478,55 @@ namespace Vanara.PInvoke using var mem = new SafeCoTaskMemHandle(sz); if (SetupDiGetDeviceProperty(DeviceInfoSet, DeviceInfoData, PropertyKey, out var propType, mem, mem.Size, out _)) { - switch (propType) - { - case DEVPROPTYPE.DEVPROP_TYPE_EMPTY: - case DEVPROPTYPE.DEVPROP_TYPE_NULL: - Value = null; - return true; - - case DEVPROPTYPE.DEVPROP_TYPE_SECURITY_DESCRIPTOR: - Value = new RawSecurityDescriptor(mem.GetBytes(0, mem.Size), 0); - return true; - - case DEVPROPTYPE.DEVPROP_TYPE_STRING_INDIRECT: - Value = mem.ToString(-1, CharSet.Unicode); - return true; - - case DEVPROPTYPE.DEVPROP_TYPE_STRING_LIST: - Value = mem.ToStringEnum(CharSet.Unicode).ToArray(); - return true; - - default: - (DEVPROPTYPE type, DEVPROPTYPE mod) spt = propType.Split(); - var type = CorrespondingTypeAttribute.GetCorrespondingTypes(spt.type).FirstOrDefault(); - if (type is not null) - { - Value = spt.mod switch - { - 0 => mem.DangerousGetHandle().Convert(mem.Size, type, CharSet.Unicode), - DEVPROPTYPE.DEVPROP_TYPEMOD_ARRAY => mem.DangerousGetHandle().ToArray(type, mem.Size / Marshal.SizeOf(type), 0, mem.Size), - _ => null - }; - if (Value is not null) - return true; - } - break; - } + Value = SetupDiPropertyToManagedObject(mem, propType); + return true; } return false; } + /// Converts memory retrieved from a property call to a managed object of the correct type. + /// The allocated memory. + /// The type of the property. + /// A managed object with the value from the memory. + public static object SetupDiPropertyToManagedObject(ISafeMemoryHandle mem, DEVPROPTYPE propType) + { + object Value = null; + switch (propType) + { + case DEVPROPTYPE.DEVPROP_TYPE_EMPTY: + case DEVPROPTYPE.DEVPROP_TYPE_NULL: + break; + + case DEVPROPTYPE.DEVPROP_TYPE_SECURITY_DESCRIPTOR: + Value = new RawSecurityDescriptor(mem.GetBytes(0, mem.Size), 0); + break; + + case DEVPROPTYPE.DEVPROP_TYPE_STRING_INDIRECT: + Value = mem.ToString(-1, CharSet.Unicode); + break; + + case DEVPROPTYPE.DEVPROP_TYPE_STRING_LIST: + Value = mem.ToStringEnum(CharSet.Unicode).ToArray(); + break; + + default: + (DEVPROPTYPE type, DEVPROPTYPE mod) spt = propType.Split(); + var type = CorrespondingTypeAttribute.GetCorrespondingTypes(spt.type).FirstOrDefault(); + if (type is not null) + { + Value = spt.mod switch + { + 0 => mem.DangerousGetHandle().Convert(mem.Size, type, CharSet.Unicode), + DEVPROPTYPE.DEVPROP_TYPEMOD_ARRAY => mem.DangerousGetHandle().ToArray(type, mem.Size / Marshal.SizeOf(type), 0, mem.Size), + _ => null + }; + } + Value ??= mem.GetBytes(0, mem.Size); + break; + } + return Value; + } + /// /// The SetupDiGetDevicePropertyKeys function retrieves an array of the device property keys that represent the device /// properties that are set for a device instance. @@ -2944,7 +2954,7 @@ namespace Vanara.PInvoke [DllImport(Lib_SetupAPI, SetLastError = true, CharSet = CharSet.Auto)] [PInvokeData("setupapi.h", MSDNShortId = "NF:setupapi.SetupDiOpenDeviceInfoA")] [return: MarshalAs(UnmanagedType.Bool)] - public static extern bool SetupDiOpenDeviceInfo(HDEVINFO DeviceInfoSet, [MarshalAs(UnmanagedType.LPTStr)] string DeviceInstanceId, + public static extern bool SetupDiOpenDeviceInfo(HDEVINFO DeviceInfoSet, [Optional, MarshalAs(UnmanagedType.LPTStr)] string DeviceInstanceId, [In, Optional] HWND hwndParent, DIOD OpenFlags, ref SP_DEVINFO_DATA DeviceInfoData); /// @@ -4013,7 +4023,7 @@ namespace Vanara.PInvoke [PInvokeData("setupapi.h", MSDNShortId = "NF:setupapi.SetupDiSetClassPropertyW")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool SetupDiSetClassProperty(in Guid ClassGuid, in DEVPROPKEY PropertyKey, DEVPROPTYPE PropertyType, - [In, Optional] IntPtr PropertyBuffer, uint PropertyBufferSize, DICLASSPROP Flags); + [In, Optional] IntPtr PropertyBuffer, [In, Optional] uint PropertyBufferSize, DICLASSPROP Flags); /// /// The SetupDiSetClassPropertyEx function sets a device property for a device setup class or a device interface class on a @@ -4144,7 +4154,7 @@ namespace Vanara.PInvoke [PInvokeData("setupapi.h", MSDNShortId = "NF:setupapi.SetupDiSetClassPropertyExW")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool SetupDiSetClassPropertyEx(in Guid ClassGuid, in DEVPROPKEY PropertyKey, DEVPROPTYPE PropertyType, - [In, Optional] IntPtr PropertyBuffer, uint PropertyBufferSize, DICLASSPROP Flags, + [In, Optional] IntPtr PropertyBuffer, [In, Optional] uint PropertyBufferSize, DICLASSPROP Flags, [Optional, MarshalAs(UnmanagedType.LPWStr)] string MachineName, [In, Optional] IntPtr Reserved); /// The SetupDiSetClassRegistryProperty function sets a specified device class property in the registry. diff --git a/PInvoke/SetupAPI/SetupAPI.cs b/PInvoke/SetupAPI/SetupAPI.cs index 4ab18f1f..6e2300a2 100644 --- a/PInvoke/SetupAPI/SetupAPI.cs +++ b/PInvoke/SetupAPI/SetupAPI.cs @@ -2368,37 +2368,6 @@ namespace Vanara.PInvoke public ushort CabinetNumber; } - /// - /// In Windows Vista and later versions of Windows, the DEVPROPKEY structure represents a device property key for a device property - /// in the unified device property model. - /// - /// - /// The DEVPROPKEY structure is part of the unified device property model. - /// The basic set of system-supplied device property keys are defined in Devpkey.h. - /// The DEFINE_DEVPROPKEY macro creates an instance of a DEVPROPKEY structure that represents a device property key. - /// - // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/devpropkey struct DEVPROPKEY { DEVPROPGUID fmtid; DEVPROPID - // pid; }; - [PInvokeData("Devpropdef.h")] - [StructLayout(LayoutKind.Sequential)] - public struct DEVPROPKEY - { - /// - /// A DEVPROPGUID-typed value that specifies a property category. - /// The DEVPROPGUID data type is defined as: - /// - public Guid fmtid; - - /// - /// - /// pid A DEVPROPID-typed value that uniquely identifies the property within the property category. For internal system - /// reasons, a property identifier must be greater than or equal to two. - /// - /// The DEVPROPID data type is defined as: - /// - public uint pid; - } - /// /// The FILE_IN_CABINET_INFO structure provides information about a file found in the cabinet. The SetupIterateCabinet /// function sends this structure as one of the parameters when it sends a SPFILENOTIFY_FILEINCABINET notification to the cabinet diff --git a/PInvoke/Shared/Cfg.cs b/PInvoke/Shared/Cfg.cs new file mode 100644 index 00000000..f92bd46d --- /dev/null +++ b/PInvoke/Shared/Cfg.cs @@ -0,0 +1,52 @@ +using System; + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +namespace Vanara.PInvoke +{ + /// The status of a device node (devnode). + [PInvokeData("cfg.h")] + [Flags] + public enum DN : uint + { + DN_ROOT_ENUMERATED = 0x00000001, + DN_DRIVER_LOADED = 0x00000002, + DN_ENUM_LOADED = 0x00000004, + DN_STARTED = 0x00000008, + DN_MANUAL = 0x00000010, + DN_NEED_TO_ENUM = 0x00000020, + DN_NOT_FIRST_TIME = 0x00000040, + DN_HARDWARE_ENUM = 0x00000080, + DN_LIAR = 0x00000100, + DN_HAS_MARK = 0x00000200, + DN_HAS_PROBLEM = 0x00000400, + DN_FILTERED = 0x00000800, + DN_MOVED = 0x00001000, + DN_DISABLEABLE = 0x00002000, + DN_REMOVABLE = 0x00004000, + DN_PRIVATE_PROBLEM = 0x00008000, + DN_MF_PARENT = 0x00010000, + DN_MF_CHILD = 0x00020000, + DN_WILL_BE_REMOVED = 0x00040000, + DN_NOT_FIRST_TIMEE = 0x00080000, + DN_STOP_FREE_RES = 0x00100000, + DN_REBAL_CANDIDATE = 0x00200000, + DN_BAD_PARTIAL = 0x00400000, + DN_NT_ENUMERATOR = 0x00800000, + DN_NT_DRIVER = 0x01000000, + DN_NEEDS_LOCKING = 0x02000000, + DN_ARM_WAKEUP = 0x04000000, + DN_APM_ENUMERATOR = 0x08000000, + DN_APM_DRIVER = 0x10000000, + DN_SILENT_INSTALL = 0x20000000, + DN_NO_SHOW_IN_DM = 0x40000000, + DN_BOOT_LOG_PROB = 0x80000000, + DN_NEED_RESTART = DN_LIAR, + DN_DRIVER_BLOCKED = DN_NOT_FIRST_TIME, + DN_LEGACY_DRIVER = DN_MOVED, + DN_CHILD_WITH_INVALID_ID = DN_HAS_MARK, + DN_DEVICE_DISCONNECTED = DN_NEEDS_LOCKING, + DN_QUERY_REMOVE_PENDING = DN_MF_PARENT, + DN_QUERY_REMOVE_ACTIVE = DN_MF_CHILD, + } +} \ No newline at end of file diff --git a/PInvoke/Shared/CfgMgr32.cs b/PInvoke/Shared/CfgMgr32.cs new file mode 100644 index 00000000..6591b20e --- /dev/null +++ b/PInvoke/Shared/CfgMgr32.cs @@ -0,0 +1,40 @@ +using System; + +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +namespace Vanara.PInvoke +{ + [PInvokeData("cfgmgr32.h")] + [Flags] + public enum CM_DEVCAP : uint + { + CM_DEVCAP_LOCKSUPPORTED = 0x00000001, + CM_DEVCAP_EJECTSUPPORTED = 0x00000002, + CM_DEVCAP_REMOVABLE = 0x00000004, + CM_DEVCAP_DOCKDEVICE = 0x00000008, + CM_DEVCAP_UNIQUEID = 0x00000010, + CM_DEVCAP_SILENTINSTALL = 0x00000020, + CM_DEVCAP_RAWDEVICEOK = 0x00000040, + CM_DEVCAP_SURPRISEREMOVALOK = 0x00000080, + CM_DEVCAP_HARDWAREDISABLED = 0x00000100, + CM_DEVCAP_NONDYNAMIC = 0x00000200, + CM_DEVCAP_SECUREDEVICE = 0x00000400, + } + + [PInvokeData("cfgmgr32.h")] + public enum CM_INSTALL_STATE : uint + { + CM_INSTALL_STATE_INSTALLED = 0, + CM_INSTALL_STATE_NEEDS_REINSTALL = 1, + CM_INSTALL_STATE_FAILED_INSTALL = 2, + CM_INSTALL_STATE_FINISH_INSTALL = 3, + } + + [PInvokeData("cfgmgr32.h")] + public enum CM_REMOVAL_POLICY : uint + { + CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL = 1, + CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL = 2, + CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL = 3, + } +} \ No newline at end of file diff --git a/PInvoke/Shared/RegStr.cs b/PInvoke/Shared/RegStr.cs new file mode 100644 index 00000000..0f48f9b3 --- /dev/null +++ b/PInvoke/Shared/RegStr.cs @@ -0,0 +1,70 @@ +using System; + +namespace Vanara.PInvoke +{ + /// A device's configuration flags + [PInvokeData("regstr.h")] + [Flags] + public enum CONFIGFLAG : uint + { + /// Set if disabled + CONFIGFLAG_DISABLED = 0x00000001, + + /// Set if a present hardware enum device deleted + CONFIGFLAG_REMOVED = 0x00000002, + + /// Set if the devnode was manually installed + CONFIGFLAG_MANUAL_INSTALL = 0x00000004, + + /// Set if skip the boot config + CONFIGFLAG_IGNORE_BOOT_LC = 0x00000008, + + /// Load this devnode when in net boot + CONFIGFLAG_NET_BOOT = 0x00000010, + + /// Redo install + CONFIGFLAG_REINSTALL = 0x00000020, + + /// Failed the install + CONFIGFLAG_FAILEDINSTALL = 0x00000040, + + /// Can't stop/remove a single child + CONFIGFLAG_CANTSTOPACHILD = 0x00000080, + + /// Can remove even if rom. + CONFIGFLAG_OKREMOVEROM = 0x00000100, + + /// Don't remove at exit. + CONFIGFLAG_NOREMOVEEXIT = 0x00000200, + + /// Complete install for devnode running 'raw' + CONFIGFLAG_FINISH_INSTALL = 0x00000400, + + /// This devnode requires a forced config + CONFIGFLAG_NEEDS_FORCED_CONFIG = 0x00000800, + + /// This is the remote boot network card + CONFIGFLAG_NETBOOT_CARD = 0x00001000, + + /// This device has a partial logconfig + CONFIGFLAG_PARTIAL_LOG_CONF = 0x00002000, + + /// Set if unsafe removals should be ignored + CONFIGFLAG_SUPPRESS_SURPRISE = 0x00004000, + + /// Set if hardware should be tested for logo failures + CONFIGFLAG_VERIFY_HARDWARE = 0x00008000, + + /// Show the finish install wizard pages for the installed device. + CONFIGFLAG_FINISHINSTALL_UI = 0x00010000, + + /// Call installer with DIF_FINISHINSTALL_ACTION in client context. + CONFIGFLAG_FINISHINSTALL_ACTION = 0x00020000, + + /// Configured devnode during boot phase + CONFIGFLAG_BOOT_DEVICE = 0x00040000, + + /// Device needs additional class configuration to start + CONFIGFLAG_NEEDS_CLASS_CONFIG = 0x00080000, + } +} \ No newline at end of file diff --git a/Vanara.sln b/Vanara.sln index 40eb2dce..ed7a0732 100644 --- a/Vanara.sln +++ b/Vanara.sln @@ -285,6 +285,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vanara.PInvoke.Msi", "PInvo EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Msi", "UnitTests\PInvoke\Msi\Msi.csproj", "{E7242839-78DE-4AFE-8AF7-E9DDCE06E18C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vanara.PInvoke.SHCore", "PInvoke\SHCore\Vanara.PInvoke.SHCore.csproj", "{F1417ADE-A8D3-432F-8F43-EF626DF4A3C9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -915,6 +917,12 @@ Global {E7242839-78DE-4AFE-8AF7-E9DDCE06E18C}.Debug|Any CPU.Build.0 = Debug|Any CPU {E7242839-78DE-4AFE-8AF7-E9DDCE06E18C}.DebugNoTests|Any CPU.ActiveCfg = Debug|Any CPU {E7242839-78DE-4AFE-8AF7-E9DDCE06E18C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1417ADE-A8D3-432F-8F43-EF626DF4A3C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1417ADE-A8D3-432F-8F43-EF626DF4A3C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1417ADE-A8D3-432F-8F43-EF626DF4A3C9}.DebugNoTests|Any CPU.ActiveCfg = Debug|Any CPU + {F1417ADE-A8D3-432F-8F43-EF626DF4A3C9}.DebugNoTests|Any CPU.Build.0 = Debug|Any CPU + {F1417ADE-A8D3-432F-8F43-EF626DF4A3C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1417ADE-A8D3-432F-8F43-EF626DF4A3C9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1038,6 +1046,7 @@ Global {B1F98DFA-7FC7-4728-B4C2-A2B3E163EF79} = {385CAD2D-0A5E-4F80-927B-D5499D126B90} {CC8EB859-0940-4D91-B165-3B028A1B7B5D} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90} {E7242839-78DE-4AFE-8AF7-E9DDCE06E18C} = {385CAD2D-0A5E-4F80-927B-D5499D126B90} + {F1417ADE-A8D3-432F-8F43-EF626DF4A3C9} = {212ABBD0-B724-4CFA-9D6D-E3891547FA90} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {543FAC75-2AF1-4EF1-9609-B242B63FEED4}