Function Discovery Glossary

[Function Discovery is available for use in the following versions of Windows: Windows Server 2012, Windows 8, Windows Server 2008 R2, Windows 7, Windows Server 2008, and Windows Vista. It may be altered or unavailable in subsequent versions.]


Categories are namespaces in which components that provide similar base functionality are grouped.


Used to filter results returned to the client. There are two types of constraints: query constraints and property constraints. Query constraints are used by the provider. Property constraints are applied after initial results are returned from the provider.


An internal structure that represents a device on the system. There is a devnode for each device on a computer and the devnodes are organized into a hierarchical device tree. The PnP manager creates a devnode for a device when the device is configured. A devnode contains the device stack (the device objects for the device's drivers) and information about the device such as whether the device has been started and which drivers have registered for notification on the device.

function instance

Function instances are COM objects that represent a "snapshot" view of a specific system resource, and are returned by the Function Discovery subsystem in response to a query generated by the client program. They provide basic information about devices or resources that have been discovered. Function instances enable applications, or clients, to view metadata and gain access to device- or resource-specific programming interfaces.

hosted service

A hosted service delivers messages (WSD protocol elements) sent from one network endpoint to another. Both the sending and receiving endpoints are distinct from the host. The hosted service is visible and is addressed separately from the host.


Metadata is descriptive data about hardware and software components. Across all devices there will be certain baseline metadata, for example, "Device Name". Each category and subcategory may have its own extended metadata to describe component features that are specific to that category.


Providers are responsible for discovering resources and creating the function instances used to represent them. Each resource type supported by Function Discovery has an underlying provider that abstracts the details of searching for that type of resource.

property key

Represents a property supported by a provider. These are stored as name/value pairs.


Subcategories divide categories into more specialized groups.