basic questions!

Hi all,
I have several basic questions here.
Who would like to help me?

I know that the Dispatch Level software interrupt is issued by
HalRequestSoftwareInterrupt.

  1. But Who will issue the interrupt request? When does the Dispatch Level
    software interrupt request occur?"

2.Does the InsertQueueDpc() or the timer interrupt handler
raises a dispatch level interrupt when the time slice counter becomes 0 ?

  1. What on earth does the Dispatch Level Interrupt Handler do?

4.What’s the relation of the Dispatch Level Interrupt and the thread
scheduler? Thread scheduling?
Thanks a million.

Best regards,
Andy

> Hi all,

I have several basic questions here.
Who would like to help me?

I know that the Dispatch Level software interrupt is issued by
HalRequestSoftwareInterrupt.

However that is not strictly true, but it doesn’t really matter.

  1. But Who will issue the interrupt request? When does the Dispatch
    Level
    software interrupt request occur?"

KeInsertQueueDpc is one way.

2.Does the InsertQueueDpc() or the timer interrupt handler
raises a dispatch level interrupt when the time slice counter becomes 0
?

The timer interrupt handler will call KeInsertQueueDpc when a timer dpc
object is specified.

  1. What on earth does the Dispatch Level Interrupt Handler do?

It runs the dpc queue on that processor, amoung other things.

4.What’s the relation of the Dispatch Level Interrupt and the thread
scheduler? Thread scheduling?

A transition from DISPATCH_LEVEL to less than DISPATCH_LEVEL will result
in the ‘scheduler’ doing its thing as part of that transition.

Read Inside Windows NT 3rd Edition for the gory details.

===========================
Mark Roddy
Consultant, Microsoft DDK MVP
Hollis Technology Solutions
xxxxx@hollistech.com
www.hollistech.com
603-321-1032

> 1. But Who will issue the interrupt request? When does the Dispatch
Level

software interrupt request occur?"

Any call to Kexxx which tries to switch a thread (like KeSetEvent)
does this, timer interrupt also does this.

  1. What on earth does the Dispatch Level Interrupt Handler do?

Drains the DPC queue. Another way of this is the idle thread.

Max