[pso] [Tema2] [win] Citire parametrii registri

Vlad Dogaru ddvlad at rosedu.org
Wed Apr 6 15:35:14 EEST 2011


On Wed, Apr 06, 2011 at 03:23:19PM +0300, Andrei Scurei wrote:
> Salut!
> Am scris un modul simplu care pentru inceput doar imi citeste parametrul
> dorit din registrii. Parametrul este gasit, dar prima data are valoare "?"
> iar apoi "1" abia la al doilea test.

Nu ar trebui să se întâmple asta, testele fac DoWriteRegistry încă de la
prima încărcare. Check test.c:178 to make sure.

> Dupa aceea, testele nu mai merg, iar modulul nu mai merge eliberat:
> 
> ---test.exe output---
> C:\cygwin\home\Administrator\tema2>test
> ==== Module insertion and port&interrupt registration ============
> test 0001: driver load objchk_wnet_x86\i386\uart16550.sys...passed
> test 0002: driver load _test\solutie.sys....................passed
> can't stop service uart16550: The requested control is not valid for this
> servic
> e.
> 
> test 0003: driver unload uart16550..........................passed
> test 0004: driver unload solutie............................passed
> ==== Reading at base speed (2400 baud) ===========================
> can't create service uart16550 to load driver
> C:\cygwin\home\Administrator\tema2
> \objchk_wnet_x86\i386\uart16550.sys: The specified service has been marked
> for d
> eletion.
> ------------------------------
> In continuare, daca incerc sa scot modulul din sistem, primesc aceeasi
> eroare despre serviciul care e marcat pentru stergere.
> Acelasi lucru se intampla daca incerc sa sterg serviciul asociat:
> sc \\localhost delete uart16550
> intoarce aceeasi eroare.
> Am citit ca problema ar putea fi legata de faptul ca ramane setata cheia in
> registrii, dupa terminarea modulului.

Nu prea cred că e de la asta: Windows registry e folosit pentru o
grămadă de alte lucruri, nu ar trebui să "crape" dacă lași o valoare
acolo.

> Puteti sa imi spuneti, va rog, unde gresesc, sau daca comportamentul e
> cauzat de faptul ca nu inregistrez si dispozitivele si interrupturile pe
> care le asteapta testerul?

Verifică să eliberezi toate resursele pe care le iei, în general
modulele nu mai pot fi descărcate când nu eliberezi tot ce trebuie. De
asemenea, dacă primești IRP-uri, ar trebui să le completezi pentru ca
modulul să poată fi descărcat.

Vlad


More information about the pso mailing list