[pso] [tema2][windows] DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
Andrei Dragus
adragus at gmail.com
Sun Apr 25 01:42:59 EEST 2010
Rutina de tratare a intreruperii e complet goala ( in afara de return) , nu
are cum sa cauzeze probleme.
Activez intreruperile din driver entry doar ca sa vad ca le pot activa,
inainte le activam din write, dar era aceeasi chestie ( crapa la aceeasi
instructiune).
2010/4/25 Octavian Voicu <octavian.voicu at gmail.com>
> On Sun, Apr 25, 2010 at 1:00 AM, Andrei Dragus <adragus at gmail.com> wrote:
> > WARNING: Frame IP not in any known module. Following frames may be wrong.
> > f78e6b90 80887734 82235d98 81e720e0 00000033
> <Unloaded_uart16550.sys>+0x1680
> > f78e6bb4 808876e8 82419a00 00000033 f78e6c88
> nt!KiChainedDispatch2ndLvl+0x3c
> > f78e6bb4 80a54305 82419a00 00000033 f78e6c88 nt!KiChainedDispatch+0x28
> > f78e6c34 f7848c80 000002f9 00000003 8088d069 hal!WRITE_PORT_UCHAR+0x9
> > f78e6c88 808eed5d 823cf030 81ed3000 00000000 uart16550!DriverEntry+0x1b0
> > [c:\cygwin\home\administrator\tema2\uart16550.c @ 617]
> >
> >
> > Din cate inteleg eu de aici instructiunea care genereaza BSOD este exatct
> > WRITE_PORT_UCHAR, nu ajunge la intrerupere.
>
> Backtrace-ul arata ca respectivul cod e chiar in DriverEntry.
> Consultand WRK, prezenta KiChainedDispatch [1] in stack trace ma face
> sa cred ca inainte ca WRITE_PORT_UCHAR sa se intoarca este generata o
> intrerupere THREI. Probabil ca n-ai initializat complet structurile
> interne si ramura THREI a handlerului de intrerupere genereaza
> BSOD-ul.
>
> Activarea intreruperilor trebuie sa fie ultimul pas din initializare,
> pentru ca odata activate pot veni oricand (in cazul THREI vine
> instantaneu pentru ca registrul de transmit al portului serial e gol).
> Oricum, dupa cum am mai zis in alt thread [2], nu are sens sa activezi
> THREI in initializarea modului pentru ca n-ai nimic de trimis inca
> (dar n-ar duce la BSOD daca ar fi facuta dupa ce totul e initializat
> corect; pe de alta parte, daca o activezi aici si nu o dezactivezi in
> handlerul de intrerupere cand vezi ca n-ai nimic de trimis, vei avea
> parte de un freeze complet al sistemului).
>
> Octavian
>
> [1] http://koala.cs.pub.ro/lxr/wrk/ntos/ke/amd64/intsup.asm#L180
> [2]
> http://cursuri.cs.pub.ro/lurker/message/20100413.182445.7a3bf274.en.html
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/lurker/list/pso.html/attachments/20100425/38a45dae/attachment-0001.htm>
More information about the pso
mailing list