KSPRIORITY structure (ks.h)

The KSPRIORITY structure is used to specify priority and is used with the KSPROPERTY_CONNECTION_PRIORITY property.

Syntax

typedef struct {
  ULONG PriorityClass;
  ULONG PrioritySubClass;
} KSPRIORITY, *PKSPRIORITY;

Members

PriorityClass

Specifies a number ranging from 1 to 0xFFFFFFFF, where 1 is least priority and 0xFFFFFFFF is the highest priority. Zero is reserved for future use. When setting a class value, 0xFFFFFFFF is used to indicate exclusive access to the resources consumed by the pin. Possible values are listed in the following table.

PriorityClass Description
KSPRIORITY_LOW Specifies the lowest priority.
KSPRIORITY_NORMAL Specifies normal priority.
KSPRIORITY_HIGH Specifies an elevated priority.
KSPRIORITY_EXCLUSIVE Specifies the highest priority, which implies exclusive access to resources.

PrioritySubClass

Specifies a number ranging from 1 to 0xFFFFFFFF, where 1 is the least priority within the class and 0xFFFFFFFF is the most priority. Zero is reserved for future use.

Remarks

The KSPRIORITY.PrioritySubClass member allows a client to set exclusive use of resources consumed by a pin and also to prioritize the use of those resources by the client's pins within that exclusive class. The initial priority of a pin is set by the connection request typically performed through KsCreatePin, and is usually KSPRIORITY_NORMAL, with a subclass priority of 1. A pin uses these priorities as parameters when allocating shared resources from any component managing resources. Resource allocation occurs when formats are set on pins.

If the removal of resources by a higher priority client causes the filter pin to fail, the client must be notified through the KSEVENT_CONNECTION_PRIORITY event (assuming that the client had registered for event notification of this type).

Requirements

Requirement Value
Header ks.h (include Ks.h)

See also

KSPROPERTY_CONNECTION_PRIORITY

KsCreatePin