Sensor Properties

The Sensor and Location platform defines constants that identify properties for sensors. Sensor manufacturers can also define their own properties.

The platform defines the following PROPERTYKEY values for sensor properties. These properties are read-only unless otherwise noted.

Each platform-defined sensor property PROPERTYKEY is based on a common GUID named SENSOR_PROPERTY_COMMON_GUID:

{7F8383EC-D3EC-495C-A8CF-B8BBE85C2920}.

Important

Do not use this base value to define your own property keys.

 

Values for properties designated as read/write can be specified by the client application. Values for properties designated as static must not change over time. Properties designated as required must be supported by the sensor.

Property key name and PID Description
SENSOR_PROPERTY_ACCURACY
(PID = 17)
VT_UNKNOWN
Read only. IPortableDeviceValues object that contains sensor data type names and their associated accuracies. Accuracy values represent possible variation from true values. Accuracy values are expressed by using the same units as the data field, except when otherwise documented.
SENSOR_PROPERTY_CHANGE_SENSITIVITY
(PID = 14)
VT_UNKNOWN
Read/write. IPortableDeviceValues object that contains sensor data type names and their associated change sensitivity values. Change sensitivity values provide requests about the amount by which the data field should change before the SENSOR_EVENT_DATA_UPDATED event is raised.
Sensitivity values are expressed by using the same units as the data field, except where otherwise documented.
For some sensors, the change sensitivity is interpreted as an actual value. For example, a change sensitivity value of 2 for SENSOR_DATA_TYPE_TEMPERATURE_CELSIUS represents a sensitivity of plus or minus 2 degrees Celsius.
For other sensors, like the ambient light sensor (ALS), the change sensitivity is interpreted as a percent. So, a change sensitivity of 2 for SENSOR_DATA_TYPE_LIGHT_LEVEL_LUX represents plus or minus 2% of LUX.
You can set this value to request a particular change sensitivity, but multiple applications could be using the same sensor. Therefore, sensors determine the true change sensitivity, based on their internal logic. For example, the sensor might always use the smallest change sensitivity that is requested by any of the applications.
If an application sets this property to VT_NULL, the device driver will reset SENSOR_PROPERTY_CHANGE_SENSITIVITY to its default value.
SENSOR_PROPERTY_CONNECTION_TYPE
(PID = 11)
VT_UI4
Read only. SensorConnectionType value that contains the current connection type.
SENSOR_PROPERTY_CURRENT_REPORT_INTERVAL
(PID = 13)
VT_UI4
Read/write. The current elapsed time for sensor data report generation, in milliseconds.
Setting a value of zero signals the driver to use its default report interval. After receiving a value of zero for this property, a driver must return its default report interval, not zero, when queried.
Applications can set this value to request a particular report interval, but multiple applicationscould be using the same driver. Therefore, drivers determine the true report interval, based on internal logic. For example, the driver might always use the shortest report interval that is requested by any caller.
For an example of how to use this property, see Using Sensor API Events.
SENSOR_PROPERTY_DESCRIPTION
(PID = 10)
VT_LPWSTR
Read only. The sensor description string.
SENSOR_PROPERTY_DEVICE_PATH
(PID = 15)
VT_LPWSTR
Read only. Uniquely identifies the device instance with which the sensor is associated. You can use this property to determine whether a device contains multiple sensors.
Device drivers do not have to support this property because the platform provides this value to applications without querying drivers.
SENSOR_PROPERTY_FRIENDLY_NAME
(PID = 9)
VT_LPWSTR
Read only. Required, static. The friendly name for the device.
SENSOR_PROPERTY_HID_USAGE
(PID = 22)
VT_UI4
Read only. This property is provided so that HID sensor manufacturers and driver developers have a means of identifying a sensor that surfaces in the API layer with a friendly name of "unknown".
SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE
(PID = 16)
VT_VECTOR|VT_UI1
Read only. A counted array that contains pairs of values that provide a mapping between ambient light levels and offsets. These values are expressed as percentages. The adaptive brightness feature in Windows applies these values to the user's current display brightness preference.
Data for vector types is always serialized as VT_UI1 (an array of unsigned, 1-byte characters). This property actually contains each value as a 4-byte unsigned integer (VT_UI4). For information about working with arrays, see Retrieving Vector Types.
SENSOR_PROPERTY_LOCATION_DESIRED_ACCURACY
(PID = 19)
VT_UI4
Read/write. A value from the LOCATION_DESIRED_ACCURACY enumeration that indicates the type of accuracy handling requested by a client application.
LOCATION_DESIRED_ACCURACY_DEFAULT (0) indicates that the sensor should use the accuracy for which it can optimize power use and other cost considerations.
LOCATION_DESIRED_ACCURACY_HIGH (1) indicates that the sensor should deliver the most accurate report possible. This includes using services that might charge money, or consuming higher levels of battery power or connection bandwidth.
SENSOR_PROPERTY_MANUFACTURER
(PID = 6)
VT_LPWSTR
Read only. Required, static. The manufacturer's name.
SENSOR_PROPERTY_MIN_REPORT_INTERVAL
(PID = 12)
VT_UI4
Read only. Required, static. The minimum interval that the hardware supports for sensor data report generation, in milliseconds.
SENSOR_PROPERTY_MODEL
(PID = 7)
VT_LPWSTR
Read only. Required, static. The sensor model name.
SENSOR_PROPERTY_PERSISTENT_UNIQUE_ID
(PID = 5)
VT_CLSID
Read only. Required, static. A GUID that identifies the sensor. This value must be unique for each sensor on a device, or across devices of the same model as enumerated on the computer. This property contains the same value obtained by calling ISensor::GetID .
SENSOR_PROPERTY_RANGE_MAXIMUM
(PID = 21)
VT_UKNOWN
Read only. IPortableDeviceValues object that contains sensor data field names and their associated maximum values.
SENSOR_PROPERTY_RANGE_MINIMUM
(PID = 20)
VT_UKNOWN
Read only. IPortableDeviceValues object that contains sensor data field names and their associated minimum values.
SENSOR_PROPERTY_RESOLUTION
(PID = 18)
VT_UKNOWN
Read only. IPortableDeviceValues object that contains sensor data field names and their associated resolutions. Resolution values represent sensitivity to change in the data field.
Resolution values are expressed by using the same units as the data field, except when otherwise documented.
SENSOR_PROPERTY_SERIAL_NUMBER
(PID = 8)
VT_LPWSTR
Read only. Required, static. The sensor serial number.
SENSOR_PROPERTY_STATE
(PID = 3)
VT_UI4
Read only. Required.
SensorState value that contains the current sensor state.
SENSOR_PROPERTY_TYPE
(PID = 2)
VT_CLSID
Read only. Required, static. A GUID that identifies the sensor type. Platform-defined sensor types are defined in Sensors.h.

The following Windows Portable Devices (WPD) property must be supported by all sensors.

Property key Description
WPD_FUNCTIONAL_OBJECT_CATEGORY
VT_CLSID
Read only. Required, static. Defines the sensor category.

Requirements

Requirement Value
Minimum supported client
Windows 7 [desktop apps only]
Minimum supported server
None supported
Header
Sensors.h

See also

GetProperties

GetProperty

IPortableDeviceValues

SetProperties