Device Object

The device object supports the following properties. An application can request these properties by querying the root object (specifying the defined WPD_DEVICE_OBJECT_ID constant object ID). All values of the device object are read-only.

If a given device implements the WPD_FUNCTIONAL_CATEGORY_DEVICE category, it must also support the properties associated with that category.

Property Name Required or Optional
WPD_OBJECT_ID Required. The value is WPD_DEVICE_OBJECT_ID.
WPD_OBJECT_PARENT_ID Required. The value is an empty string.
WPD_OBJECT_NAME Required if the object represents a file.
WPD_OBJECT_PERSISTENT_UNIQUE_ID Required.
WPD_OBJECT_ISHIDDEN Required if the device object should not be shown to the user.
WPD_OBJECT_REFERENCES Required if the device object has references to other objects.
WPD_OBJECT_KEYWORDS Optional.
WPD_OBJECT_SYNC_ID Optional.
WPD_OBJECT_GENERATE_THUMBNAIL_FROM_RESOURCE Optional.
WPD_DEVICE_SYNC_PARTNER Optional.
WPD_DEVICE_FIRMWARE_VERSION Required.
WPD_DEVICE_POWER_LEVEL Recommended if the device has a battery.
WPD_DEVICE_POWER_SOURCE Recommended.
WPD_DEVICE_PROTOCOL Recommended.
WPD_DEVICE_MANUFACTURER Required.
WPD_DEVICE_MODEL Required.
WPD_DEVICE_SERIAL_NUMBER Required.
WPD_DEVICE_SUPPORTS_NON_CONSUMABLE Required if the device supports non-consumable objects; that is, if it can be used for simple data storage.
WPD_DEVICE_DATETIME Optional.
WPD_DEVICE_FRIENDLY_NAME Recommended.
WPD_DEVICE_SUPPORTED_DRM_SCHEME Recommended if the device supports Digital Rights Management (DRM).
WPD_DEVICE_SUPPORTED_FORMATS_ARE_ORDERED Recommended if the device supports preferred format ordering.
WPD_DEVICE_TYPE Recommended.
WPD_DEVICE_FUNCTIONAL_UNIQUE_ID Optional.
WPD_DEVICE_MODEL_UNIQUE_ID Optional.
WPD_DEVICE_TRANSPORT Recommended.
WPD_DEVICE_USE_DEVICE_STAGE Optional.
WPD_FUNCTIONAL_OBJECT_CATEGORY Required.

Typical Resources

These objects typically do not host resources.

Commands

In addition to properties, devices should support a specific set of commands defined by Windows Portable Devices. What commands an object or device supports depends on its type, functionality, and capabilities.

The following table describes the command classes that apply to devices, by functionality. Typically, a device falls under several categories, and it should support the commands for all applicable categories. For example, a mobile phone with a camera would fall under three categories: all devices, SMS devices, and still image capture devices. A custom driver and client application can support additional commands or properties that you define, but must support the following commands. For a description of the specific commands that fall under each command category, see Commands.

Description Command categories
All devices. WPD_CATEGORY_CAPABILITIESWPD_CATEGORY_COMMON
WPD_CATEGORY_OBJECT_ENUMERATION
WPD_CATEGORY_OBJECT_MANAGEMENT
WPD_CATEGORY_OBJECT_PROPERTIES
WPD_CATEGORY_OBJECT_PROPERTIES_BULK
WPD_CATEGORY_OBJECT_RESOURCES
Devices that can capture still images, such as digital cameras. WPD_CATEGORY_STILL_IMAGE_CAPTURE
Devices that can send short message service (SMS) messages, such as cellular phones. Sending SMS messages is often called "text messaging". WPD_CATEGORY_SMS
Devices that function as storage devices. These include external drives.If a device supports the ability to format a store or to move objects from one location to another, your driver should support this category.
WPD_CATEGORY_STORAGE

Requirements for Objects