[pso] IRQL_NOT_LESS_OR_EQUAL
Razvan Deaconescu
razvan.deaconescu at cs.pub.ro
Sun Apr 19 23:17:32 EEST 2009
On Sun, 2009-04-19 at 22:52 +0300, Matei Gruber wrote:
> Multumesc Gabriel.
>
> 1. Abordarea driverului meu a fost sa marchez IRP-urile ca pending si
> sa le completez pe masura ce primesc data dintr-un DpcForIsr, pornit
> din ISR. Dat fiind ca din DPC nu pot accesa memorie paginata, (care
> cred ca este cazul bufferelor asociate IRP), n-am cum sa completez
> bufferele. Este viabila o astfel de abordare?
Dar de ce lucrezi direct cu bufferele asociate IRP-urilor. De ce nu
folosesti un set de buffere circulare asociate driver-ului? Asa cum se
intampla si in exemplul indicat in enunt[1]. Doua buffer per dispozitiv
(unul de citire si unul de scriere). In acest fel:
read/write ISR
| |
| |
IRP buffer <----> kernel buffer <----> hardware buffer (FIFO)
<snip>
> 3. Am dat google dupa DIRQL operations si n-am gasit nimic.
Cred ca Gabi se referea la ce operatii poti sa faci in context
intrerupere[2].
Razvan
[1] http://cs.pub.ro/%7Epso/wiki/images/5/55/ExModuleWinCase.zip
[2] http://www.osronline.com/DDKx/kmarch/intrupts_0kh3.htm
More information about the pso
mailing list