Real-Time Priority System Levels

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

The priority system has 256 Priority Levels numbered 0 (zero) through 255. Priority level 0 is the highest priority level. The original eight priority levels for Windows CE 2.12 are mapped to levels 248 through 255.

Applications and device drivers should use the CeGetThreadPriority and CeSetThreadPriority APIs, instead of the legacy APIs, GetThreadPriority and SetThreadPriority. The legacy APIs are still available with the same interfaces as before, but those APIs have access to only the original eight priority levels.

The priority level system is divided into four ranges. The following table shows these ranges.

Levels Description

0 through 96

Reserved for real-time above drivers.

97 through 152

Used by the default Windows Mobile device drivers.

153 through 247

Reserved for real-time below drivers.

248 through 255

Mapped to non-real-time priorities.

The following table shows the default priority levels that are associated with device drivers. You can override these values by changing the source code for the drivers or by setting values in the registry. The registry paths in the table assume that the root Drivers key is HKEY_LOCAL_MACHINE\Drivers\BuiltIn; the registry uses hexadecimal values for the priority levels.

Decimal priority Hexadecimal priority Device driver Override

99

0x63

Power Manager resume thread

HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Power\ResumePriority256

100

0x64

USB Function

None

101, also uses +1 and -1 relative priorities

0x65, also uses +1 and -1 relative priorities

USB OHCD

HKEY_LOCAL_MACHINE\Drivers\BuiltIn\OHCI\Priority256

101, also uses +1, +3, +5 and +7 relative priorities

0x65, also uses +1, +3, +5, and +7 relative priorities

USB UHCD

HKEY_LOCAL_MACHINE\Drivers\BuiltIn\UHCI\Priority256

103

0x67

Serial

HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial\Priority256

105, also uses +1 and +2 relative priorities

0x69, also uses +1 and +2 relative priorities

PCMCIA

HKEY_LOCAL_MACHINE\Drivers\PCMCIA\Priority256

109

0x6D

Touch

HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Touch\Priority256

110, also uses +2 and +4 relative priorities

0x6E, also uses +2 and +4 relative priorities

IRSIR

HKEY_LOCAL_MACHINE\Comm\Irsir1\Parms\Priority256

116, also uses +2, +4, +6, +8, +10 and +12 relative priorities

0x74, also uses +2, +4, +6, +8, +10, and +12 relative priorities

NDIS

HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NDIS\Priority256

131

0x83

KITL

Override in the OEM Application Layer

131

0x83

VMINI

HKEY_LOCAL_MACHINE\Comm\VMini\Priority256

132

0x84

CxPort

HKEY_LOCAL_MACHINE\Comm\Cxport\Priority256

145

0x91

PS/2 Keyboard

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\Priority256

148

0x94

IR Comm

HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IrComm\Priority256

150

0x96

TAPI (Unimodem)

HKEY_LOCAL_MACHINE\Drivers\Unimodem\Priority256

210

0xD2

WaveDev

HKEY_LOCAL_MACHINE\Drivers\BuiltIn\WaveDev\Priority256

248

0xF8

PM (Power Manager)

HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Power\Priority256

249

0xF9

PS/2 Mouse

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\MOUSE\Priority256

249

0xF9

Power Manager device registration thread

HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Power\PnPPriority256

249

0xF9

Power Manager system management thread

HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Power\SystemPriority256

249

0xF9

Power Manager activity timer thread

HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Power\TimerPriority256

250

0xFA

WaveAPI

HKEY_LOCAL_MACHINE\Drivers\BuiltIn\WAPIMAN\Priority256

251

0xFB

Power Manager battery monitor thread

HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Power\PowerPollPriority256

Remarks

Threads in Normal (as apposed to Privileged) applications can use thread priorities 248 through 255.

Threads in Privileged applications can use any thread priority.

See Also

Concepts

Real-Time Priority System
Real-Time Priority System Response Times