Specifying Priority Boosts When Completing I/O Requests

When a driver completes an I/O request, it can call WdfRequestCompleteWithPriorityBoost to specify a value that the system uses to boost the run-time priority of the thread that requested the I/O operation.

If the driver calls WdfRequestComplete or WdfRequestCompleteWithInformation instead of WdfRequestCompleteWithPriorityBoost, the framework uses a default priority boost value that is based on the device type. The following table lists the default priority boost values that the framework uses. The device type and priority boost constants are defined in Wdm.h.

Device Type Default Priority Boost
FILE_DEVICE_UNDEFINED IO_NO_INCREMENT
FILE_DEVICE_BEEP IO_NO_INCREMENT
FILE_DEVICE_CD_ROM IO_CD_ROM_INCREMENT
FILE_DEVICE_CD_ROM_FILE_SYSTEM IO_CD_ROM_INCREMENT
FILE_DEVICE_CONTROLLER IO_NO_INCREMENT
FILE_DEVICE_DATALINK IO_NO_INCREMENT
FILE_DEVICE_DFS IO_NO_INCREMENT
FILE_DEVICE_DISK IO_DISK_INCREMENT
FILE_DEVICE_DISK_FILE_SYSTEM IO_DISK_INCREMENT
FILE_DEVICE_FILE_SYSTEM IO_NO_INCREMENT
FILE_DEVICE_INPORT_PORT IO_NO_INCREMENT
FILE_DEVICE_KEYBOARD IO_KEYBOARD_INCREMENT
FILE_DEVICE_MAILSLOT IO_MAILSLOT_INCREMENT
FILE_DEVICE_MIDI_IN IO_SOUND_INCREMENT
FILE_DEVICE_MIDI_OUT IO_SOUND_INCREMENT
FILE_DEVICE_MOUSE IO_MOUSE_INCREMENT
FILE_DEVICE_MULTI_UNC_PROVIDER IO_NO_INCREMENT
FILE_DEVICE_NAMED_PIPE IO_NAMED_PIPE_INCREMENT
FILE_DEVICE_NETWORK IO_NETWORK_INCREMENT
FILE_DEVICE_NETWORK_BROWSER IO_NETWORK_INCREMENT
FILE_DEVICE_NETWORK_FILE_SYSTEM IO_NETWORK_INCREMENT
FILE_DEVICE_NULL IO_NO_INCREMENT
FILE_DEVICE_PARALLEL_PORT IO_PARALLEL_INCREMENT
FILE_DEVICE_PHYSICAL_NETCARD IO_NETWORK_INCREMENT
FILE_DEVICE_PRINTER IO_NO_INCREMENT
FILE_DEVICE_SCANNER IO_NO_INCREMENT
FILE_DEVICE_SERIAL_MOUSE_PORT IO_SERIAL_INCREMENT
FILE_DEVICE_SERIAL_PORT IO_SERIAL_INCREMENT
FILE_DEVICE_SCREEN IO_VIDEO_INCREMENT
FILE_DEVICE_SOUND IO_SOUND_INCREMENT
FILE_DEVICE_STREAMS IO_SOUND_INCREMENT
FILE_DEVICE_TAPE IO_NO_INCREMENT
FILE_DEVICE_TAPE_FILE_SYSTEM IO_NO_INCREMENT
FILE_DEVICE_TRANSPORT IO_NO_INCREMENT
FILE_DEVICE_UNKNOWN IO_NO_INCREMENT
FILE_DEVICE_VIDEO IO_VIDEO_INCREMENT
FILE_DEVICE_VIRTUAL_DISK IO_DISK_INCREMENT
FILE_DEVICE_WAVE_IN IO_SOUND_INCREMENT
FILE_DEVICE_WAVE_OUT IO_SOUND_INCREMENT
FILE_DEVICE_8042_PORT IO_KEYBOARD_INCREMENT
FILE_DEVICE_NETWORK_REDIRECTOR IO_NETWORK_INCREMENT
FILE_DEVICE_BATTERY IO_NO_INCREMENT
FILE_DEVICE_BUS_EXTENDER IO_NO_INCREMENT
FILE_DEVICE_MODEM IO_SERIAL_INCREMENT
FILE_DEVICE_VDM IO_NO_INCREMENT
FILE_DEVICE_MASS_STORAGE IO_DISK_INCREMENT
FILE_DEVICE_SMB IO_NETWORK_INCREMENT
FILE_DEVICE_KS IO_SOUND_INCREMENT
FILE_DEVICE_CHANGER IO_NO_INCREMENT
FILE_DEVICE_SMARTCARD IO_NO_INCREMENT
FILE_DEVICE_ACPI IO_NO_INCREMENT
FILE_DEVICE_DVD IO_NO_INCREMENT
FILE_DEVICE_FULLSCREEN_VIDEO IO_VIDEO_INCREMENT
FILE_DEVICE_DFS_FILE_SYSTEM IO_NO_INCREMENT
FILE_DEVICE_DFS_VOLUME IO_NO_INCREMENT
FILE_DEVICE_SERENUM IO_SERIAL_INCREMENT
FILE_DEVICE_TERMSRV IO_NO_INCREMENT
FILE_DEVICE_KSEC IO_NO_INCREMENT
FILE_DEVICE_FIPS IO_NO_INCREMENT
FILE_DEVICE_INFINIBAND IO_NO_INCREMENT