IEEE 1394 Driver Thread Priorities (Windows CE 5.0)
You can adjust thread priorities for IEEE 1394 drivers through the registry. Thread priority adjustments apply to each IEEE 1394 driver and take place at boot-time. All IEEE 1394 drivers must load with the same set of priorities. Changing the thread priorities of the IEEE 1394 drivers at run-time results in unpredictable behavior.
Wdm1394.h defines PASSIVE_LEVEL, APC_LEVEL, DISPATCH_LEVEL, and DIRQL as global variables. These variables must be initialized before any code can use them.
WDM1394Init should initialize the thread priority variables. Generally, the call to WDM1394Init is in the DLL entry point for the IEEE 1394 module. If the module does not perform special processing in its entry point, the module can use WDM1394DllMain as the entry point.
Wdmutil.lib defines the WDM1394Init and WDM1394DllMain entry points. The source for Wdmutil.lib is in %_WINCEROOT%\Public\Common\OAK\Drivers\1394\Drivers\Wdmutil.
The following table shows the default thread priorities.
Thread priority | Value |
---|---|
PASSIVE_LEVEL | 250 |
APC_LEVEL | 249 |
DISPLATCH_LEVEL | 248 |
DIRQL | 247 |
The following registry sample shows how to override these values in the registry.
[HKEY_LOCAL_MACHINE\Drivers\WDMDrivers]
"PassivePrio256"=dword:fb ; 251 - thread_priority_normal
"APCPrio256"=dword:f9 ; 249
"DispatchPrio256"=dword:f6 ; 246
"DIRQLPrio256"=dword:f5 ; 245
Send Feedback on this topic to the authors