Geen fan van ............. ! Zelfs geen voetbalfan ! Dus kappe nou ....... !
Verwijderd
Driver writing is niet helemaal mijn ding, maar wil je dit wel? dan zou je driver afhankelijk worden of je (usermode) applicatie draait en daarbij haal je je ook nog es allerlei nare user/kernelmode synchronisation problemen in je nek. idee/gokje: Je zou je app evt met een WaitForMultipleObjects kunnen laten wachten op een event wat je vanuit je driver met KeSetEvent afschiet (en dan alsnog met readfile je data naar usermode sleuren)?
Ja, dat wil ikOp dinsdag 14 mei 2002 12:57 schreef Yarvieh het volgende:
Driver writing is niet helemaal mijn ding, maar wil je dit wel? dan zou je driver afhankelijk worden of je (usermode) applicatie draait en daarbij haal je je ook nog es allerlei nare user/kernelmode synchronisation problemen in je nek. ......
Geen fan van ............. ! Zelfs geen voetbalfan ! Dus kappe nou ....... !
Het is mogelijk om kernel mode drivers memory te laten sharen met user mode apps.
Zie http://support.microsoft.com/default.aspx?scid=kb;EN-US;q191840
Je zou ook de standaard IRP_MJ_READ kunnen afvangen, die normaal bij een ReadFile wordt aangeroepen. Aangezien dit ook Overlapped mogelijk is, is het niet een slechte methode.
Verder is er ook nog de mogelijkheid om te werken met de DeviceIOCtls, maar dat zou betekenen dat je user mode app de driver moet pollen, wat iha niet ten goede komt aan de prestaties.
btw, Voordat je hiermee aan de slag gaat, is het verstandig om een boek te kopen, ( bijvoorbeeld Programming the WDM van Walter Oney ) want met alleen de DDK docs heb je heel ploeteren voor de boeg. ( Ook met dat boek trouwens
)
Zie http://support.microsoft.com/default.aspx?scid=kb;EN-US;q191840
Je zou ook de standaard IRP_MJ_READ kunnen afvangen, die normaal bij een ReadFile wordt aangeroepen. Aangezien dit ook Overlapped mogelijk is, is het niet een slechte methode.
Verder is er ook nog de mogelijkheid om te werken met de DeviceIOCtls, maar dat zou betekenen dat je user mode app de driver moet pollen, wat iha niet ten goede komt aan de prestaties.
btw, Voordat je hiermee aan de slag gaat, is het verstandig om een boek te kopen, ( bijvoorbeeld Programming the WDM van Walter Oney ) want met alleen de DDK docs heb je heel ploeteren voor de boeg. ( Ook met dat boek trouwens
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Opmerkingen :Op dinsdag 14 mei 2002 13:40 schreef farlane het volgende:
Het is mogelijk om kernel mode drivers memory te laten sharen met user mode apps.
Zie http://support.microsoft.com/default.aspx?scid=kb;EN-US;q191840
Je zou ook de standaard IRP_MJ_READ kunnen afvangen, die normaal bij een ReadFile wordt aangeroepen. Aangezien dit ook Overlapped mogelijk is, is het niet een slechte methode.
Verder is er ook nog de mogelijkheid om te werken met de DeviceIOCtls, maar dat zou betekenen dat je user mode app de driver moet pollen, wat iha niet ten goede komt aan de prestaties.
btw, Voordat je hiermee aan de slag gaat, is het verstandig om een boek te kopen, ( bijvoorbeeld Programming the WDM van Walter Oney ) want met alleen de DDK docs heb je heel ploeteren voor de boeg. ( Ook met dat boek trouwens)
1. Wij wilden idd proberen om geen gebruik te maken van
pollen.
2. Wij hebben een paar boeken tot onze beschikking waaronder
die van Walter Oney, maar in die boeken staan nergens
echt duidelijk hoe je vanuit de driver communiceert met
een applicatie (anders dan met ReadFile)
3. Wij waren idd ook op die mogelijkheid gekomen om
IRP_MJ_READ af te vangen, maar omdat hierbij het
initiatief weer vanuit de applicatie komt, waren wij
benieuwd naar een andere mogelijkheid waarbij echt
de driver het initiatief neemt !
Geen fan van ............. ! Zelfs geen voetbalfan ! Dus kappe nou ....... !
Verwijderd
Dit kan ongetwijfeld (alles kan) maar ik zou niet weten hoe en daarnaast is het compleet ongewenst. Gewoon een extra thread in de applicatie die een continue blocking read(), poll() of synchronisatie ioctl() op de driver uitvoert is een veelgebruikte oplossing voor dit soort problemen en is ook de standaard manier om dit soort problemen aan te pakken.Op dinsdag 14 mei 2002 12:45 schreef superboer het volgende:
wij zijn nieuwsgierig naar een oplossing
waarbij de driver een interrrupt(of callback) ofzoiets
genereerd zodat de applicatie dan weet van : "Goh er is data !"
Een kernel die actief met een (misschien niet runnende) applicatie communiceert is een gigantische designfout.
Zoals gezegd, als je deze overlapped toepast, is het geen verkeerde manier van werken.3. Wij waren idd ook op die mogelijkheid gekomen om
IRP_MJ_READ af te vangen, maar omdat hierbij het
initiatief weer vanuit de applicatie komt, waren wij
benieuwd naar een andere mogelijkheid waarbij echt
de driver het initiatief neemt !
Beelzebubu gaf ook al aan dat drivers die zelf het initiatief nemen om 'naar boven' te communiceren niet echt een geweldig goed ontwerp hebben.
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Pagina: 1