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 |