/// In Windows Vista and later versions of Windows, the DEVPROP_TYPEMOD_ARRAY identifier represents a property-data-type
/// modifier that can be combined with the <c>base-data-type identifiers</c> to create a property-data-type identifier that
/// represents an array of base-data-type values.
/// </summary>
/// <remarks>
/// <para>
/// The DEVPROP_TYPEMOD_ARRAY identifier can be combined only with the fixed-length base-data-type identifiers (
/// <c>DEVPROPTYPE</c> values) that are associated with data. The DEVPROP_TYPEMOD_ARRAY identifier cannot be combined with
/// <c>DEVPROP_TYPE_EMPTY</c>, <c>DEVPROP_TYPE_NULL</c>, or any of the variable-length base-data-type identifiers.
/// </para>
/// <para>
/// To create a property-data-type identifier that represents an array of base-data-type values, perform a bitwise OR between
/// DEVPROP_TYPEMOD_ARRAY and the corresponding DEVPROP_TYPE_Xxx identifier. For example, to specify an array of unsigned bytes,
/// perform the following bitwise OR: (DEVPROP_TYPEMOD_ARRAY | <c>DEVPROP_TYPE_BYTE</c>).
/// </para>
/// <para>The size, in bytes, of an array of base-data-type values is the size, in bytes, of the array.</para>
/// <para>
/// For information about how to create a property-data-type identifier that represents a REG_MULTI_SZ list of NULL-terminated
/// Unicode strings, see <c>DEVPROP_TYPEMOD_LIST</c>.
/// </para>
/// </remarks>
DEVPROP_TYPEMOD_ARRAY=0x00001000,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPEMOD_LIST identifier represents a property-data-type modifier
/// that can be combined only with the <c>base-data-type identifiers</c><c>DEVPROP_TYPE_STRING</c> and
/// <c>DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING</c> to create a property-data-type identifier that represents a REG_MULTI_SZ list
/// of NULL-terminated Unicode strings.
/// </summary>
/// <remarks>
/// <para>
/// DEVPROP_TYPEMOD_LIST cannot be combined with <c>DEVPROP_TYPE_EMPTY</c>, <c>DEVPROP_TYPE_NULL</c>,
/// <c>DEVPROP_TYPE_SECURITY_DESCRIPTOR</c>, or any of the fixed length base-data-type identifiers.
/// </para>
/// <para>
/// To create a property-data-type identifier that represents a string list, perform a bitwise OR between the
/// DEVPROP_TYPEMOD_LIST property-data-type modifier and the corresponding DEVPROP_TYPE_Xxx identifier. For example, to specify
/// a REG_MULTI_SZ list of Unicode strings, perform the following bitwise OR: (DEVPROP_TYPEMOD_LIST | DEVPROP_TYPE_STRING).
/// </para>
/// <para>
/// The size of a REG_MULTI_SZ list of NULL-terminated Unicode strings is size of the list including the final <c>NULL</c> that
/// terminated the list.
/// </para>
/// <para>
/// For information about how to create a property-data-type identifier that represents an array of fixed length data values,
/// see <c>DEVPROP_TYPEMOD_ARRAY</c>.
/// </para>
/// </remarks>
DEVPROP_TYPEMOD_LIST=0x00002000,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_EMPTY identifier represents a special base-data-type
/// identifier that indicates that a property does not exist.
/// </summary>
/// <remarks>
/// <para>Use this base-data-type identifier with the device property functions to delete a property.</para>
/// <para>If a device property function returns this base-data-type identifier, the property does not exist.</para>
/// <para>
/// <c>DEVPROP_TYPE_EMPTY</c> cannot be combined with the property-data-type modifiers <c>DEVPROP_TYPEMOD_ARRAY</c> or <c>DEVPROP_TYPEMOD_LIST</c>.
/// </para>
/// <para>Deleting a Property</para>
/// <para>To delete a property, call the corresponding SetupDiSetXxx property function and set the function parameters as follows:</para>
/// <para>
/// If DEVPROP_TYPE_EMPTY is used in an attempt to delete a property that does not exist, the delete operation will fail, and a
/// call to GetLastError will return ERROR_NOT_FOUND.
/// </para>
/// <para>Retrieving a Property that Does Not Exist</para>
/// <para>
/// A call to a SetupDiGetXxx property function that attempts to retrieve a device property that does not exist will fail, and a
/// subsequent call to GetLastError will return ERROR_NOT_FOUND. The called SetupAPI property function will set the
/// *PropertyType parameter to DEVPROP_TYPE_EMPTY.
/// </para>
/// </remarks>
DEVPROP_TYPE_EMPTY=0x00000000,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_NULL identifier represents a special base-data-type
/// identifier that indicates that a device property exists. However, that the property has no value that is associated with the property.
/// </summary>
/// <remarks>
/// <para>
/// Use this base-property-type identifier with the device property functions to delete the value that is associated with a
/// device property.
/// </para>
/// <para>
/// If a device property function returns this base data type, the property exists, but the property has no value that is
/// associated with it.
/// </para>
/// <para>
/// The DEVPROP_TYPE_NULL identifier cannot be combined with the property-data-type modifiers <c>DEVPROP_TYPEMOD_ARRAY</c> or <c>DEVPROP_TYPEMOD_LIST</c>.
/// </para>
/// <para><c>Setting a Property of this Type</c></para>
/// <para>
/// To set a property whose data type is DEVPROP_TYPE_NULL, call the corresponding <c>SetupDiSetXxx</c> property function and
/// set the function parameters as follows:
/// </para>
/// <para><c>Retrieving a Property of this Type</c></para>
/// <para>
/// A call to a <c>SetupDiGetXxx</c> property function that attempts to retrieve a device property that has no value will
/// succeed and set the *PropertyType parameter to DEVPROP_TYPE_NULL.
/// </para>
/// </remarks>
DEVPROP_TYPE_NULL=0x00000001,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_BYTE identifier represents the base-data-type identifier
/// that indicates the data type is a SBYTE-typed signed integer.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_SBYTE can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para><c>Setting a Property of this Type</c></para>
/// <para>
/// To set a property whose data type is DEVPROP_TYPE_BYTE, call the corresponding <c>SetupDiSetXxx</c> property function, and
/// set the function parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(sbyte))]
DEVPROP_TYPE_SBYTE=0x00000002,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_BYTE identifier represents the base-data-type identifier
/// that indicates the data type is a BYTE-typed unsigned integer.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_BYTE can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para>Setting a Property of this Type</para>
/// <para>
/// To set a property whose data type is DEVPROP_TYPE_BYTE, call the corresponding SetupDiSetXxx property function, setting the
/// function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(byte))]
DEVPROP_TYPE_BYTE=0x00000003,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_INT16 identifier represents the base-data-type identifier
/// that indicates the data type is a SHORT-typed signed integer.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_SHORT can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para><c>Setting a Property of this Type</c></para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_INT16, call the corresponding <c>SetupDiSetXxx</c> property function
/// and set the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(short))]
DEVPROP_TYPE_INT16=0x00000004,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_UINT16 identifier represents the base-data-type identifier
/// that indicates that the data type is a USHORT-typed unsigned integer.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_UINT16 can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para><c>Setting a Property of this Type</c></para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_UINT16, call the corresponding <c>SetupDiSetXxx</c> property function
/// and set the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(ushort))]
DEVPROP_TYPE_UINT16=0x00000005,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_INT32 identifier represents the base-data-type identifier
/// that indicates that the data type is a LONG-typed signed integer.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_INT32 can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para><c>Setting a Property of this Type</c></para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_INT32, call the corresponding <c>SetupDiSetXxx</c> property function,
/// setting the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(int))]
DEVPROP_TYPE_INT32=0x00000006,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_UINT32 identifier represents the base-data-type identifier
/// that indicates that the data type is a ULONG-typed unsigned integer.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_UINT32 can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para><c>Setting a Property of this Type</c></para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_UINT32, call the corresponding <c>SetupDiSetXxx</c> property function
/// and set the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(uint))]
DEVPROP_TYPE_UINT32=0x00000007,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_INT64 identifier represents the base-data-type identifier
/// that indicates that the data type is a LONG64-typed signed integer.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_INT64 can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para><c>Setting a Property of this Type</c></para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_INT64, call the corresponding <c>SetupDiSetXxx</c> property function
/// and set the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(long))]
DEVPROP_TYPE_INT64=0x00000008,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_INT64 identifier represents the base-data-type identifier
/// that indicates that the data type is a ULONG64-typed unsigned integer.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_UINT64 can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para><c>Setting a Property of this Type</c></para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_UINT64, call the corresponding <c>SetupDiSetXxx</c> property function
/// and set the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(ulong))]
DEVPROP_TYPE_UINT64=0x00000009,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_INT64 identifier represents the base-data-type identifier
/// that indicates that the data type is a FLOAT-typed IEEE floating-point number.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_FLOAT can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para><c>Setting a Property of this Type</c></para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_FLOAT, call the corresponding SetupDiSetXxx property function,
/// setting the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(float))]
DEVPROP_TYPE_FLOAT=0x0000000A,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_DOUBLE identifier represents the base-data-type identifier
/// that indicates that the data type is a DOUBLE-typed IEEE floating-point number.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_DOUBLE can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para>Setting a Property of this Type</para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_DOUBLE, call the corresponding SetupDiSetXxx property function and
/// set the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(double))]
DEVPROP_TYPE_DOUBLE=0x0000000B,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_INT64 identifier represents the base-data-type identifier
/// that indicates that the data type is a DECIMAL-typed value.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_DECIMAL can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para>Setting a Property of this Type</para>
/// <para>
/// To set a property whose data type is DEVPROP_TYPE_DECIMAL, call the corresponding SetupDiSetXxx property function and set
/// the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(DECIMAL))]
DEVPROP_TYPE_DECIMAL=0x0000000C,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_GUID identifier represents the base-data-type identifier
/// that indicates that the data type is a GUID-typed globally unique identifier (GUID).
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_GUID can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para>Setting a Property of this Type</para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_GUID, call the corresponding SetupDiSetXxx property function and set
/// the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(Guid))]
DEVPROP_TYPE_GUID=0x0000000D,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_CURRENCY identifier represents the base-data-type
/// identifier that indicates that the data type is a CURRENCY-typed value.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_CURRENCY can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para>Setting a Property of This Type</para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_CURRENCY, call the corresponding SetupDiSetXxx property function and
/// set the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(CY))]
DEVPROP_TYPE_CURRENCY=0x0000000E,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_DATE property type represents the base-data-type identifier
/// that indicates that the data type is a DOUBLE-typed value that specifies the number of days since December 31, 1899. For
/// example, January 1, 1900, is 1.0; January 2, 1900, is 2.0; and so on.
/// </summary>
/// <remarks>
/// <para>DEVPROP_TYPE_DATE can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para>Setting a Property of this Type</para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_DATE, call the corresponding SetupDiSetXxx property function and set
/// the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(DATE))]
DEVPROP_TYPE_DATE=0x0000000F,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_FILETIME property type represents the base-data-type
/// identifier that indicates that the data type is a FILETIME-typed value.
/// </summary>
/// <remarks>
/// <para>We recommend that all time values be represented in Coordinated Universal Time (UTC) units.</para>
/// <para>DEVPROP_TYPE_FILETIME can be combined only with the <c>DEVPROP_TYPEMOD_ARRAY</c> property-data-type modifier.</para>
/// <para>Setting a Property of this Type</para>
/// <para>
/// To set a property whose base data type is DEVPROP_TYPE_FILETIME, call the corresponding SetupDiSetXxx property function and
/// set the function input parameters as follows:
/// </para>
/// </remarks>
[CorrespondingType(typeof(FILETIME))]
DEVPROP_TYPE_FILETIME=0x00000010,
/// <summary>
/// In Windows Vista and later versions of Windows, the DEVPROP_TYPE_BOOLEAN property type represents the base-data-type
/// identifier that indicates that the data type is a DEVPROP_BOOLEAN-typed Boolean value.
/// </summary>
/// <remarks>
/// <para>The DEVPROP_BOOLEAN data type and valid Boolean values are defined as follows:</para>