通用传感器属性

本文介绍所有传感器通用的传感器属性。

下表显示了通用属性。 有关类型列中显示的类型的详细信息,请参阅 PROPVARIANT 结构

属性键 类型 访问权限 (R/O, R/W) 必需/可选 说明
PKEY_Sensor_Type VT_CLSID R/O 必须 传感器的类型。 GUID 的格式与 Windows 传感器相同(例如,SENSOR_TYPE_ACCELEROMETER_3D)。 有关传感器类型的详细信息,请参阅传感器类型 GUID
PKEY_Sensor_State VT_UI4 R/O 必须 传感器的状态。 有关传感器状态的详细信息,请参阅 SENSOR_STATE
PKEY_Sensor_MinimumDataInterval_Ms VT_UI4 R/O 必须 硬件支持生成传感器数据报告的最低时间间隔(以毫秒为单位)。
PKEY_Sensor_MaximumDataFieldSize_Bytes VT_UI4 R/O 必须 ReadFile 调用中返回的最大大小。 ReadFile 调用允许本机 API 分配缓冲区来保存任何数据字段。
PKEY_Sensor_Power_Milliwatts VT_R4 R/O 可选 传感器功率,单位为毫瓦。
PKEY_SensorHistory_MaxSize_Bytes VT_UI4 R/O 可选

但如果传感器支持历史记录,则为必需。
传感器历史记录数据的最大大小,以字节表示。
PKEY_SensorHistory_Interval_Ms VT_UI4 R/O 可选

但如果传感器支持历史记录,则为必需。
传感器历史记录采样间隔,以毫秒为单位。
PKEY_SensorHistory_MaximumRecordSize_Bytes VT_UI4 R/O 可选

但如果传感器支持历史记录,则为必需。
以字节表示的最大记录大小。
PKEY_Sensor_FifoReservedSize_Samples VT_UI4 R/O 可选

但如果传感器支持批处理,则为必需。
在批次的先进先出 (FIFO) 缓冲区中为该传感器保留的事件数。 这保证了事件的最小数量。 如果此值为零,则不能保证传感器执行批处理。
PKEY_Sensor_FifoMaxSize_Samples VT_UI4 R/O 可选

但如果传感器支持批处理,则为必需。
FIFO 中可以批处理的最大事件数。 如果此值为零,则传感器不支持批处理。 由于批处理 FIFO 可以由多个传感器共享,因此实际事件数可能小于此数。
PKEY_Sensor_WakeCapable VT_BOOL R/O 可选

但如果传感器支持批处理,则为必需。
指示传感器是否具有唤醒功能。

当传感器支持传感器批处理时,如果传感器可以在 FIFO 已满时唤醒应用程序处理器,则应将此属性设置为 VARIANT_TRUE。 如果传感器无法唤醒应用程序处理器,则应将该值设置为 VARIANT_FALSE。 在这种情况下,此属性的状态指示传感器能够从连接待机状态唤醒。

如果传感器支持从 SX 唤醒系统,则应将此属性设置为 VARIANT_TRUE;如果不支持从 SX 唤醒,则应将此属性设置为 VARIANT_FALSE。

数据批处理

支持数据批处理的传感器驱动程序必须报告以下常见传感器属性:

  • PKEY_Sensor_FifoReservedSize_Samples
  • PKEY_Sensor_FifoMaxSize_Samples
  • PKEY_Sensor_WakeCapable

从 Windows 10 版本 1511 开始,现在支持使用 HID 传感器类驱动程序实现数据批处理。 有关此内容的信息,请参阅传感器批处理控件

有关与数据批处理相关的回调函数的信息,请参阅 EvtSensorSetBatchLatency

由于传感器能够将 CPU 和操作系统从 SX 状态唤醒,PKEY_Sensor_WakeCapable 还用作枚举属性,可以从 PnP 驱动程序存储中查询该属性,以了解传感器是否能够从 SX 唤醒系统,以及从连接的待机状态唤醒系统。

注解

当客户端驱动程序报告以下属性时,客户端驱动程序必须使用 CollectionsListGetMarshalledSizeWithoutSerialization 而不是 CollectionsListGetMarshalledSize

  • PKEY_SensorHistory_MaxSize_Bytes
  • PKEY_SensorHistory_MaximumRecordSize_Bytes