Exemplary algorithm
PROCESS C: Task finishes (irql device., any thread context)
If the next task is ready:
Reset the quantum to "running";
Choose the next task to run.
If the task requires importing memory resources, submit it to the worker thread.
If all memory resources are present, ask the driver to patch the next DMA buffer.
If the next task is not ready:
Stall the coprocessor while the worker thread completes the next task setup or until an application submits a new buffer;
During worker thread completion, the priority of the worker thread is boosted so the worker thread finishes its work as soon as possible.