[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