[pso] [tema2][win] DPC-uri, IRP-uri, evenimente

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Fri Apr 10 10:33:41 EEST 2009


On Wed, 2009-04-08 at 02:50 -0700, Vlad Albulescu wrote:
> Guidelines zic urmatoarele:
> 
>       * pentru write, cel mai simplu e să ţineţi minte într-o listă
>         IRP-urile şi să le serviţi atunci când vă indică întreruperea;
>         cum nu aveţi voie să utilizaţi IoCompleteRequest într-o ISR,
>         va trebui să folosiţi DPC-uri;
>       * puteţi apela IoCompleteRequest direct din rutina DPC sau vă
>         puteţi sincroniza cu rutinele de read/write folosind
>         evenimente şi apela de acolo IoCompleteRequest.
> 
> Daca aleg a doua varianta de la al doilea bullet, mai am nevoie de
> vreun DPC, sau pot sa merg pe aceeasi structura ca si pe linux?
> If so, exista vreo constrangere legata de timpul necesar procesarii
> rutinelor de write si de read?

Ai nevoie de un DPC pentru ca nu poti rula KeSetEvent direct din
intrerupere[1] ("the caller can be running at IRQL <= DISPATCH_LEVEL).
Planifici practic DPC-ul doar pentru a rula KeSetEvent si sa trezesti
procesul ce asteapta in rutina de rea/write.

Razvan

[1] http://www.osronline.com/DDKx/kmarch/k105_1prm.htm



More information about the pso mailing list