Hollosi Information eXchange /HIX/
HIX CODER 2157
Copyright (C) HIX
2004-10-27
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 SSADM diagrammszerkesztes (mind)  12 sor     (cikkei)
2 win kernel driver kerdesek (mind)  76 sor     (cikkei)
3 want a Rolex? (mind)  3 sor     (cikkei)

+ - SSADM diagrammszerkesztes (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Keresek az SSADM modszer diagramjainak elkeszitesehez hasznalhato  
programot, ami tartalmazza az ott kivant elemeket, lehetoleg freeware  
(vagy trial), mindegy, hogy win vagy linux alatt futo.

Koszi!

Rajah

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/m2/
+ - win kernel driver kerdesek (mind) VÁLASZ  Feladó: (cikkei)

Hi!

Nehany egyszeru kerdes a kernel driver szagertokhoz:
Olvasom, hogy az MmAllocateContiguousMemory XP alatt 1G feletti mennyisegu
memoriat is le tud foglalni, persze ha van eleg fizikai memoria a gepben.
Tegyuk fel, hogy van.
Ha ez a fuggveny sikeresen elvegzi a foglalast, egyuttal be is mappeli
azt a kerneles virtualis cimtartomanyba.

1. Hogy lehetseges ez, hiszen az egesz kernel cimtartomany 2G, vagy
   valamelyik windoz alatt mindossze 1G?

A kovetkezoket irjak meg: nem valami jo megoldas ez a fuggveny, mert lehet
hogy olyan cimet kapunk, amit a hardver nem tud kezelni, pl 4G feletti
teruletet egy PCI kartyanak.

2. Ez miert problema, hiszen a parameterekben meg lehet adni a legmagasabb
   fizikai cimet amit a hardver kezelni tud?

3. Mashol azt irjak, hogy ez a fuggveny long-term _internal_ buffer
   foglalasara alkalmas. Ez nem azt jelenti, hogy a hardver szamara nem
   feltetlenul elerheto? Vagy csak hibas fogalmazas a DDK-ban?

4. Hogy lehet, hogy ez a fuggveny lazan lefoglal 1G-t, ugyanakkor a hozza
   hasonlo funkcionalitasu AllocateCommonBuffer doksiban mindig felhivjak
   a figyelmet arra, hogy rettento takarekosan kell banni vele, mert
   kulonben elfogynak a map registerek, es akkor hetbaj lesz.

5. Ugyanez a kerdes vonatkozik arra is, ha az user progi lefoglal 1G
   memoriat, azt METHOD_IN_DIRECT io-val atadja a drivernek. Az IOmanager
   meghivja ra az MmProbeAndLockPages fuggvenyt, a driver pedig utana az
   MmGetSystemAddressForMdlSafe-t. Ugyanaz tortenik mint fent, csak az
   le tud foglalni 1G-t, raadasul fizikailag folytonos memoriat(!), ez
   meg nem folytonosat csinal, es be is xarhat barmely fazisban. Miert?

6. Mik azok a map regiszterek es hany van beloluk?
   Valami olyasmit sejtek, hogy az user modu virtualis cimeket PTE/TLB
   bejegyzesekben tarolja a win, a kernel modu mappeleseket ezekkel a
   regiszterekkel oldja meg, hogy takarekoskodjon az adminisztracios
   terulettel, vagy mittomen.

7. Mi tortenik, ha az user progi akkora memoriat szeretne atadni direct
   IO-val, amennyi fizikai lapot nem tud csinalni az MmProbeAndLockPages?
   Hol fog keletkezni es milyen hiba? Ugyanis ilyenkor az Irp ha jol
   sejtem, el sem fog jutni a driverig feldolgozasra, mert a buffert nem
   lehet memoriaba lockolni.

8. Mi van, ha a buffert sikeresen lelockolta az iomanager, de bemappelni
   (pl map regiszterek vagy virtualis cimtartomany hianyaban) nem
   lehetseges? Van-e valami lehetoseg ilyenkor arra, hogy az Mdl-lel leirt
   buffer egyben maradjon, de mindig csak egy kis resze mappelodjon be a
   kernel cimtartomanyba, amin eppen dolgozik a driver? Pl 1 lap is eleg.

9. A fentiek alapjan melyik a javasolt modszer 1G koruli DMA buffer
   megvalositasara? Egy PCI kartya dolgozik benne, tud egy scatter DMA
   hangulatu sajat megoldast, viszont csak 32 bites cimzest tud, tehat
   csak az also 4G fizikai memoriat tudja elerni.
   Jelenleg commonbuffer DMA-val mukodik a rendszer jol, csak tovabb kene
   lepni az 1G hatar fele :)
   Nem tudom hogy melyik modszernek pontosan mik a hatarai, illetve az
   MmAllocateContiguousMemory-rol irjak, hogy tud 1G-t XP alatt, de erre
   a tovabbi win verziokban ne szamitsunk :( A tobbirol semmi info sehol.
   Jelenleg nem is tudom kiprobalni, mert meg nincs meg a masfel G a
   tesztgepben, allitolag nemsokara erkezik, de utana is rengeteg ido
   lenne mindent vegigprobalni. Hatha tudja valaki konkretan...

10. Es vegul: hogy lehet azt megcsinalni, hogy elkuldok egy ioctl-t,
   de ne kelljen megvarni hogy a driver kesz legyen vele. Kozben tudjak
   tovabbi parancsokat kuldeni a drivernek, es egy ilyen tovabbi parancs
   hatasara vegezzen az elso parancssal?

Koszi!

-- 
Valenta Ferenc <vf at elte.hu>   Visit me at http://ludens.elte.h u/~vf/
"Egyetlen teny romba donthet egy faradsagosan felepitett ervrendszert"
+ - want a Rolex? (mind) VÁLASZ  Feladó: (cikkei)

Need Watch?

http://eyp.fogw.com/rep/sales/

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS