• irql (irq level, yani interrupt request level) denilen $ey bir mavi ekran ce$idi, bir hata mesaji veya bir soru/sorun cinsi degildir. "abi benim alet irql verdi" demek "abi benim bilgisayarda my computer i$letim sistemi yuklu" demekle ayni anlama gelen bir yazicioglu yakla$imidir.

    irql, windows nt kernel'inin kendi icinde yamulmamasini saglayan bir fizik kuralidir ve aslinda her cpu ba$ina bir tane ayrilmi$ 0-31 arasi bir sayidir. kural $udur: bir thread'in cali$masini ayni veya daha du$uk irql seviyesine sahip hicbir interrupt bolemez.

    yani thread'imiz irql 0'da (normal gunluk gune$lik irql) cali$iyorken ancak 1 ve ustu irql'lardan interrupt'larla kesilebilir (mesela timer interrupt'in irql'i 15 civari yuksek bir sayidir rahat rahat cali$ir genelde.

    mesele $u ki diski hafiza olarak kullanabilme gibi pek cok super ozellik ancak irql 0 ve 1'de cali$ir. yani siz irql'iniz 2'yken bile kalkip paged memory'ye eri$meye cali$irsaniz direk driver irql not less or equal hatasi yersiniz uzulursunuz. o yuzdendir ki irql tabanli hatalar cogu zaman aygit geli$tiricilerinin dikkatsizliklerindendir. nadiren de bozuk hafiza, a$iri isinmi$ cpu gibi sistemi sapittiran sebepleri olur.
  • ilginc baska bir olay, irql degerini device driver in icinde kafaya gore yukseltip alcaltabilmektir. bazi i$leri yaparken (irp ile ilgili cogu i$) read/write/ioctl tarzi isteklerden etkilmemek gerekir. bu durumda driver, bagli oldugu aygitin irqsuna denk gelen irql degerine cikip i$ine devam edebilir. eger developer okuz veya daginik ise bu degeri indirmeyi unutacak, sonrasinda bsod meydana gelecek, developer mengene ya da tel testere ile gelecek olumlerden birini secmek durumunda kalacaktir.

    irq ve irql arasindaki isim benzerligi ilk basta kafalari karistirsada ikisinin fonksiyonu kesinikle ayridir. nt kernel'inde kayitli 32 farkli irql degeri mevcuttur ve irq (mimariye gore degisir ama 15~16 adet oldugunu kabul edelim) bu yapinin icinde tutulur(map edilmistir demek daha dogru sanirim).

    en alt duzeyde (passive level) user mode kod veya driver'in normal kodu calisirken, ucuncu duzeyde (dispatch level) driver'in read/write/ioctl tarzi istekleri yerine getirmesini saglayan fonksiyonlar calisir. bunun ustundeki 15 kadar duzey'e dirql denmesi ms tarafindan vacip kilinmistir. iste bu duzeylere aygitlardan gelen interruptlar konulmustur(bkz: #3258396).
    (tamam sayin baskan toparliyorum)
    bu gibi hatalari debug ederken yapilmasi gereken ilk is memory dump'i acip bir stack trace almak ve sorunlu fonksiyonu ayiklamaktir.
  • "örkıl" diye okunur.
  • irkil isminin ergence yazilan hali. aa ne guzel teni bir isim ve dil buldum hemen yazayim.
hesabın var mı? giriş yap