[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