DEVPROPERTY 结构

描述软件设备的属性。

语法

typedef struct _DEVPROPERTY {
  DEVPROPCOMPKEY CompKey;
  DEVPROPTYPE    Type;
  ULONG          BufferSize;
  PVOID          Buffer;
} DEVPROPERTY, *PDEVPROPERTY;

成员

CompKey

DEVPROPCOMPKEY 结构表示属性的复合键。

Type

DEVPROPTYPE 值指示属性类型。 有效的 DEVPROPTYPE 值由基本 DEVPROP_TYPE_ 值构造而成,可以根据需要使用 DEVPROP_TYPEMOD_ 值通过逻辑 OR 进行修改。

可能的 DEVPROP_TYPE_ 值有:

含义
DEVPROP_TYPE_EMPTY 0x00000000 无,无属性数据
DEVPROP_TYPE_NULL 0x00000001 Null 属性数据
DEVPROP_TYPE_SBYTE 0x00000002 8 位带符号整数 (SBYTE)
DEVPROP_TYPE_BYTE 0x00000003 8 位无符号整数 (BYTE)
DEVPROP_TYPE_INT16 0x00000004 16 位带符号整数 (SHORT)
DEVPROP_TYPE_UINT16 0x00000005 16 位无符号整数 (USHORT)
DEVPROP_TYPE_INT32 0x00000006 32 位带符号整数 (LONG)
DEVPROP_TYPE_UINT32 0x00000007 32 位无符号整数 (ULONG)
DEVPROP_TYPE_INT64 0x00000008 64 位带符号整数 (LONG64)
DEVPROP_TYPE_UINT64 0x00000009 64 位无符号整数 (ULONG64)
DEVPROP_TYPE_FLOAT 0x0000000A 32 位浮点 (FLOAT)
DEVPROP_TYPE_DOUBLE 0x0000000B 64 位浮点类型 (DOUBLE)
DEVPROP_TYPE_DECIMAL 0x0000000C 128 位数据 (DECIMAL)
DEVPROP_TYPE_GUID 0x0000000D 128 位唯一标识符 (GUID)
DEVPROP_TYPE_CURRENCY 0x0000000E 64 位带符号整数货币值 (CURRENCY)
DEVPROP_TYPE_DATE 0x0000000F 日期(DATE)
DEVPROP_TYPE_FILETIME 0x00000010 文件时间 (FILETIME)
DEVPROP_TYPE_BOOLEAN 0x00000011 8 位布尔值 (DEVPROP_BOOLEAN)
DEVPROP_TYPE_STRING 0x00000012 以 Null 结尾的字符串
DEVPROP_TYPE_STRING_LIST (DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST) Multi-sz 字符串列表
DEVPROP_TYPE_SECURITY_DESCRIPTOR 0x00000013 自相关二进制 SECURITY_DESCRIPTOR
DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING 0x00000014 安全描述符字符串(SDDL 格式)
DEVPROP_TYPE_DEVPROPKEY 0x00000015 设备属性键 (DEVPROPKEY)
DEVPROP_TYPE_DEVPROPTYPE 0x00000016 设备属性类型 (DEVPROPTYPE)
DEVPROP_TYPE_BINARY (DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY) 自定义二进制数据
DEVPROP_TYPE_ERROR 0x00000017 32 位 Win32 系统错误代码
DEVPROP_TYPE_NTSTATUS 0x00000018 32 位 NTSTATUS 代码
DEVPROP_TYPE_STRING_INDIRECT 0x00000019 字符串资源 (@[path]<dllname>,-<strId>)

以下是可能的 DEVPROP_TYPEMOD_ 值:

含义
DEVPROP_TYPEMOD_ARRAY 0x00001000 固定大小的数据元素数组
DEVPROP_TYPEMOD_LIST 0x00002000 可变大小的数据元素列表

BufferSize

Buffer 中属性的大小(以字节为单位)。

Buffer

包含属性信息的缓冲区。

如果定义了 MIDL_PASS,则此成员可以是 PBYTE 类型:

  #ifdef MIDL_PASS
        [size_is(BufferSize)] PBYTE Buffer;
    #else
        __field_bcount_opt(BufferSize) PVOID Buffer;
    #endif

要求

头文件

Devpropdef.h

另请参阅

SW_DEVICE_CREATE_INFO