[pso] [windows] tema2
Alin Coman
alin_coman at bullguard.com
Tue Apr 29 13:37:50 EEST 2008
Da,folosesc masina dp site,deci e configurata,dar tot nu merge... A reusit
cineva sa faca tema asta pe win? Daca exemplul din laborator cu portul
parallel nu merge pe masina virtuala dp site,atunci pe ce sa testez?
Alin.
Message: 2
Date: Mon, 28 Apr 2008 20:24:14 +0300
From: "Irina Tirdea" <ynuka13 at gmail.com>
Subject: Re: [pso] [windows] tema 2
To: "'Proiectarea Sistemelor de Operare'" <pso at cursuri.cs.pub.ro>
Message-ID: <000601c8a954$af0e8310$0d2b8930$@com>
Keywords: Business: PSO
Content-Type: text/plain; charset="us-ascii"
> Salut tuturor, ... e prima data cand trimit mesaj pe lista asta de
discutii.. am
> o 'problema'(nemultumire) dupa ce m-am chinuit cateva zile cu tema 2 pe
windows,
> am ajuns la o concluzie care m-a cam enervat :) - problema e ca nu am
reusit
> deloc sa inregistrez rutina de tratare a intreruprii,dupa o gramada de
> incercari am decis sa interactionez cu PnP Manager-ul desi se specifica in
tema
> ca NU trebuie facut asta, rezultatul : IoReportResourceForDetection()
returneaza
> STATUS_CONFLICTING_ADDRESSES ,deci dupa parerea mea nici o sansa de a
inregistra
> o noua rutina de tratare a intreruperilot ptr portul serial.
Folosesti masina virtuala de pe site? Verifica in Device Manager sa ai
ambele porturi seriale dezactivate si ACPI-ul dezinstalat.
> Am asteptat sa vad solutia ptr laboratorul cu intreruperi sa vad daca
> merge,dar nu merge nici solutia ...nu intra deloc in rutina de tratare a
> intreruperii, as vrea sa aud parerea asistentilor.
Interuperile pentru portul paralel nu functioneaza in masina virtuala.
Poti modifica solutia pentru laboratorul de intreruperi pentru a testa
portul serial: inlocuiesti adresa portului de baza si cea IRQ-ului cu
valorile pentru COM1 si codul pentru activarea/dezactivarea intreruperii. Ar
trebui sa ti se genereze intreruperea THREI si sa se execute rutina de
tratare a intreruperii la incarcarea modulului.
> Astept raspuns, Hristos a INVIAT!
Adevarat a inviat!
Irina
------------------------------
Message: 3
Date: Tue, 29 Apr 2008 09:54:46 +0300
From: "Marius Nicolae" <mariusn007 at gmail.com>
Subject: Re: [pso] [Tema 2] [Windows] KeSetEvent
To: "Proiectarea Sistemelor de Operare" <pso at cursuri.cs.pub.ro>
Message-ID:
<8edb24a30804282354n703d7d25jeefd8fdd1ce13b48 at mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Salut,
In primul rand, La multi ani la toata lista!
2008/4/25 Razvan Deaconescu <razvand at cs.pub.ro>:
> On Fri, 2008-04-25 at 16:13 +0300, Marius Nicolae wrote:
> > 2008/4/25 Razvan Deaconescu <razvand at cs.pub.ro>:
> > > On Thu, 2008-04-24 at 22:11 +0300, Andrei Ciuca wrote:
> > > > Salut,
> > > >
> > > > Se poate apela "KeSetEvent" din handlerul intreruperii ?
> > >
> > > Din documentatia KeSetEvent[1]: the caller can be running at IRQL <=
> > > DISPATCH_LEVEL.
> > >
> > > Mai multe informatii despre IRQL puteti afla aici[2].
> > >
> > > Concluzia este ca nu puteti folosi KeSetEvent dintr-un handler de
> > > intrerupere. Va trebui sa planificati un DPC pentru acest lucru.
> >
> > Si daca punem FALSE pentru campul de wait, putem sa folosim KeSetEvent
> > din handlerul de intrerupere?
> >
> > "If Wait is set to FALSE, the caller can be running at IRQL <=
> > DISPATCH_LEVEL. Otherwise, callers of KeSetEvent must be running at
> > IRQL = PASSIVE_LEVEL and in a nonarbitrary thread context."
>
> "the caller can be running at IRQL <= DISPATCH LEVEL"
Deci cu alte cuvinte prin "the caller can be running at IRQL <=
DISPATCH LEVEL" vroiau sa spuna "the caller cannot be running at IRQL
> DISPATCH LEVEL". Cam nefericita formularea (adica, daca tu poti
manca mai putin de doua oua rosii (banuiesc ca poti) nu inseamna ca nu
poti manca mai mult de doua oua rosii... :D)
Oricum, din moment ce KeSetEvent nu se blocheaza, nu inteleg de unde
restrictia de mai sus, dar banuiesc ca exista un motiv bine intemeiat
(?).
Multumesc pentru raspuns!
Numai bine,
Marius NICOLAE
>
> IRQL == PASIVE == 0 -> context proces
> IRQL == APC == 1 -> asynchronous procedure call
> IRQL == DISPATCH == 2 -> DPC (deferred procedure call)
>
> IRQL <= DISPATCH_LEVEL inseamna IRQL <= 2
>
> O rutina de tratare a unei intreruperi hardware ruleaza la IRQL > 2.
>
> Ai parcurs al doilea link[1] trimis de mine in mesajul anterior? O
> propozitie din acel articol spune:
> --
> The IRQL values are divided into two groups: Software ( 0,1,2 ) /
> Hardware IRQL ( >= 3)
> --
>
> Razvan
>
> [1] http://ext2fsd.sourceforge.net/documents/irql.htm
>
>
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
------------------------------
_______________________________________________
pso mailing list
pso at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
End of pso Digest, Vol 26, Issue 42
***********************************
More information about the pso
mailing list