Osaako kukaan neuvoa miten tosta Priviledge Instruction virheilmoituksesta pääsee eroon otsikon Windowssissa.
CLI / STI assy käskyt sen aiheuttaa.
Ei mitenkään, noiden komentojen käyttö onnistuu vain ring-0:ssa. Vaikea noille kyllä Windows ohjelmissa on käyttöäkään keksiä.
Eikös kuitenkin 95/98:ssa toimi nuo käskyt.
Ei todennäköisesti.. :) vaikka olenkin kuullut noista jossain ?
No jos nuo käskyt - vai mitä onkaan, toimisi win9x:ssä niin ei niitä kannata käyttää, jos ne eivät kuitenkaan toimisi uudemmissa Windowseissa, ME, 2k ja XP myyvät (ja warettavat) kuitenkin tällä hetkellä eniten. Ellet sitten vain omaan käyttöösi ole softaa kehittämässä.
Kyllähän ne 9x:ssä toimivat jos pykäät VxD:n tai muuten hankit itsesi ring-0:aan ("normaalistihan" ohjelmat pyörivät rajoitetussa ring-3:ssa). Ja toimivathan ne toki myös 2k:ssa ja XP:ssä KMD:n avulla.. tai ainakin pitäisi toimia.
Käytännössä noiden kanssa ei kuitenkaan tarvitse leikkiä. Niin tosiaan, kyse on keskeytysten enabloimisesta/disabloimisesta (Set Interrupt Flag / Clear Interrupt Flag).
Ok,
Kiitoksia, aika vähän netistä tuntuu aiheesta infoa löytyvän.
Fawkz, voisitko antaa neuvoa noiden VxD / KMD taustoista ?
Mitä ne on ? Onko esim. imuroitavissa jostain ?
VxD on virtual device driver, eli ajureitahan ne yleensä ovat. Jos haluat moisia kehitellä pitää sinun hankkia Microsoftilta driver development kit (ddk).. en tiedä mikä noiden tilanne on 2k:n ja xp:n suhteen, mutta 98:lle se löytyy ihan ilmaiseksi.
VxD:n kanssa voit kommunikoida Win32API:n DeviceIoControl -funktion avulla.. en kuitenkaan, anteeksi nyt vaan, uskalla suositella sinua yrittämään mitään VxD-leikkejä :-)
Jos voisit hieman kertoa, mihin CLI&STI käskyjä ylipäätään tarvitset?
Aihetta on puitu täällä ja www.mureakuha.com keskustelu palstalla.
CLI käsky ilmeisesti estää Windowsia tekemästä keskeytyksiä.
Mulla on assy koodi jolla mitataan aikaa ja se sisältää tuon CLI käskyn. 95/98/ME:ssä olen tyytyväinen koodin toimintaan (CLI-käskyt taasen sallitu).
Nyt Win NT/2000/XP:ssä pitäisi jollain päästä tuonne Ring 0:aan jotta voisi CLI käyttää.
Eli se assy softa pitäisi jollain saada esim. ajuritasolle koodattua.....näin sitä voisi ajella NT/2000/XP.
Olen kokeillut hommaa tehdä myös mitä erilaisimmilla Delphin timer komponenteilla, mutta ain törmätään siihen jotta Windowsin temput häiritsee ajanottoa.
Noh, KMD:t (kernel mode driver) ovat melkeinpä sitten se ainoa vaihtoehto.
Nt/2k/xp/me ddk ei ole ladattavissa Microsoftin sivuilta, vaan se pitää erikseen mukana. Tulee se lienee jonkun MSDN-paketinkin mukana ( http://www.microsoft.com/ddk/ ).
Simppelin KMD:n väsännee melko nopeasti, itse en kuitenkaan voi auttaa koska kokemukseni rajoittuu VxD:hin.. pitänee asentaa se w2k joskus.. ;-)
Aihe on jo aika vanha, joten et voi enää vastata siihen.