IIRC (and this is described in detail in Windows Internals), the basic timeslice assigned to a process in Windows is called a quantum. There are (IIRC) 31 priority levels in the Windows kernel, and I believe that the highest priority a user-mode process can have is 15. There might be something like 3 levels for each API priority level (like Normal might be 10-12 or something like that), and each task gets a particular timeslice; when a task other than the one currently in-process gets a higher priority level, that task preempts the one currently in use.
Anyway, IIRC, when an I/O request is made, the process' priority is elevated by like 4 levels, so that when the process' quantum expires and the operating system looks for other processes at the higher (same as current process) priority, it doesn't find any. The process priority decays over time as more quanta expire, and eventually it returns to its normal operating level.
This is an OK technical article about how quanta are used in scheduling and driver management. Still,
Windows Internals is one of the best books available on the subject of them.