It is a matter of debate, but IMHO it is more a property of the thread than the CPU - even though there are more levels where a thread cannot be rescheduled and may by hijacked than levels that are obviously per thread.
Ordinarily a thread itself decides what IRQL it wishes to run at - by calling various functions that raise IRQL from passive. In addition to a thread’s choice, the interrupt mechanism in the OS can execute code in arbitrary thread context. When this happens, the IRQL is assigned by the OS to the appropriate level when 'hijacking’ a thread to execute these routines
Again, it depends on your point of view, but Max’s answer of 'both’ it correct in every case
Sent from Surface Pro
From: Maxim S. Shatskih
Sent: Sunday, June 28, 2015 6:35 PM
To: Windows System Software Devs Interest List
I have basic doubt as to IRQL is a property of a thread or Processor.
Both.
Mostly it is a property of the CPU, but the thread also remembers whether it is at APC or PASSIVE level.
and who decides which thread will be running at what IRQL,if its a property of thread.
The KeRaiseIrql/KeAcquireSpinLock calls decide this.
If its a property of processor then who raises and lowers the IRQL of a processor?
KeRaiseIrql does.
–
Maxim S. Shatskih
Microsoft MVP on File System And Storage
xxxxx@storagecraft.com
http://www.storagecraft.com
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer