[pso] [tema2]win - IRP->Current

omar Chouydary chouydary at yahoo.com
Sat Apr 21 13:11:44 EEST 2007


Da, am inteles astea, eu intrebam altceva ... dar nu mai conteaza. o sa incerc eu cumva. Altceva as vrea sa stiu... ca nu sunt sigur (adica scrie prin windows internals ceva... dar as vrea sa stiu sigur daca siti):
cand cineva apeleaza write, si eu in write trimit irp-ul catre startIo or smth si intorc STATUS_PENDING apelul write nu se intoarce pana nu se termina irp-ul (eventual prin DPC-ul setat de ISR la primirea unei intreruperi) nu? Ca altfel ar fi cam nasol.

Mihai Florian <my_mihai_florian at yahoo.com> wrote: Buna,

Daca pentru a retine pachetele de write ti-ai implementat tu o lista in
care fiecare pachet nou de write il inserezi in coada atunci nu ai
nevoie de currentIrp in InterruptService deoarece stii ca IRP-ul pe
care lucrezi este cel din capul cozii si poti sa il iei de acolo ca sa
il pasezi la DPC.

Implementezi StartIo daca vrei sa folosesti coada sistemului pentru a
retine IRP-urile in loc sa iti faci lista ta.
Inserarea in coada sistemului se face cu IoStartPacket, in
InterruptService iei pachetul curent cu currentIrp, iar din DPC
avansezi la pachetul urmator apeland IoStartNextPacket evident dupa ce
ai completat pachetul curent.
Daca coada sistemului este vida la primul apel de IoStartPacket se
apeleaza si StartIo (avand ca parametru pt Irp pachetul dat ca
parametru la IoStartPacket), iar daca coada sistemului nu este vida,
StartIo se apeleaza imediat dupa ce se completeaza pachetul curent si
se trece la pachetul urmator cu IoStartNextPachet.
Cand StartIo este apelat poti sa fii sigur ca din InterruptService nu
face nici o operatie asupra pachetelor din coada.
Pentru aceasta tema din StartIo ai putea seta bufferul din care se
scriu datele (cel asociat noului IRP) si ai putea sa activezi THREI. Nu
vrei sa faci aceste setari din rutina de write ca sa nu afectezi
scrierea pachetelor de write deja existente in coada sistemului.

Pentru mai multe detalii poti sa te uiti aici
http://www.osronline.com/DDKx/kmarch/irps_61bb.htm
sau poti sa citesti din DDK.

Mihai

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
_______________________________________________
pso mailing list
pso at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso


       
---------------------------------
Ahhh...imagining that irresistible "new car" smell?
 Check outnew cars at Yahoo! Autos.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20070421/bfe5dd2f/attachment.htm


More information about the pso mailing list