[ C & NTDDK ] shared memory access

Pagina: 1
Acties:

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 19:57
Ik ben op dit moment bezig met het schrijven van een driver voor een legacy io kaart.

Deze kaart maakt gebruik van een 4tal io port van 0x3E4 t/m 0x3E7.

Verder heeft deze nog een stuk RAM dat gebruikt wordt om data tussen de host en de kaart heen en weer te gooien. Dit ligt op 0xC8000

Nu is het zo dat ik in de ntddk met een macro READ_PORT_UCHAR een io poort kan aanspreken, en mijn kaart op die manier enablen.

De kaart is geinstalleerd, heeft die resources toegewezen gekregen en ik kan via een ioctl de kaart enablen.

Mijn vraag is, welke acties moet ik ondernemen om bij het stuk gesharede geheugen van de kaart te komen? Welke functies moet ik daarvoor gebruiken?

Mijn driver moet een kernel mode driver worden.

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.


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 19:57
Ik ben geloof ik al iets verder ben, maar loop nu tegen een ander probleem aan:

Als een handle wordt geopend naar mijn driver worden door de io manager verschillende IRP's gestuurd.

Een daarvan zou moeten zijn:
code:
1
pDriver->MajorFunction[IRP_MJ_PNP] = ...

Nu kan ik in mijn device extension zien dat er geen IRP_MN_START_DEVICE IRP's worden gestuurd, waarbij de toegekende resources zouden moeten worden meegegeven.

Wie heeft een idee ( of ben ik _echt_ aan het verkeerde adres hier ;) ) wat de reden zou kunnen zijn dat ik geen PnP IRP's krijg?

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.


  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Denk dat je meer kans hebt op een zinnig antwoord in de nieuwsgroepen :)

Verwijderd

Je iospace mappen doe je met MmMapIoSpace waarna je met READ/WRITE_REGISTER_BUFFER_UCHAR er data uit kan lezen/schrijven? (gokker de gok met het boek er naast :) )

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 19:57
Op zaterdag 09 maart 2002 00:43 schreef Yarvieh het volgende:
Je iospace mappen doe je met MmMapIoSpace waarna je met READ/WRITE_REGISTER_BUFFER_UCHAR er data uit kan lezen/schrijven? (gokker de gok met het boek er naast :) )
Dit was idd de manier waarop in de direct port io demo gedaan wordt. Echter de MmMapIoSpace zou moeten worden aangeroepen na een IRP_MN_START_DEVICE IRP. Op een of andere manier wordt deze niet door de PnP manager verstuurd.

Mag ik vragen welk boek je naast je hebt liggen?

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.


  • Sponz
  • Registratie: Juni 2001
  • Niet online

Sponz

nul nest parfait saif moi

Gebruik je dat stuk geheugen wel als volatile? Of is dat te simpel?
Snap eigenlijk geen ruk van je vraag :)

Verwijderd

Op zaterdag 09 maart 2002 15:24 schreef farlane het volgende:
Mag ik vragen welk boek je naast je hebt liggen?
Standaard werkje van walter oney , Programming the microsoft windows driver model. ooit eens in 'n enthousiaste bui gekocht maar de tijd om er wat mee te gaan doen is gek genoeg nooit gekomen ;) heb je usenet al geprobeerd trouwens? comp.os.ms-windows.programmer.nt.kernel-mode en microsoft.public.win32.programmer.kernel zijn de enige (active) usenet groups waar ze je evt kunnen helpen.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 19:57
Op zaterdag 09 maart 2002 23:00 schreef Yarvieh het volgende:

[..]

Standaard werkje van walter oney , Programming the microsoft windows driver model. ooit eens in 'n enthousiaste bui gekocht maar de tijd om er wat mee te gaan doen is gek genoeg nooit gekomen ;) heb je usenet al geprobeerd trouwens? comp.os.ms-windows.programmer.nt.kernel-mode en microsoft.public.win32.programmer.kernel zijn de enige (active) usenet groups waar ze je evt kunnen helpen.
Zal eens kijken of ik ook een fatsoenlijk naslagwerk kan vinden. Die 'steep learning curve' waar ze het over hebben als je over de ddk begint is niet echt overdreven. :)

Die usenet groepen had idd al ff bezocht, maar kon zo niet echt een relevant topic vinden. En om te voorkomen dat ik meteen als kernel-newbie achterlijke vragen ga stellen aan de heren van MS (die lopen daar geregeld rond geloof ik) probeerde ik het eerst hier.
Voor hetzelfde geld loopt hier gewoon een driver guru rond.... :)

Naja....terug naar de boeken dan maar...

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.


Verwijderd

Op zondag 10 maart 2002 12:29 schreef farlane het volgende:
Die usenet groepen had idd al ff bezocht, maar kon zo niet echt een relevant topic vinden. En om te voorkomen dat ik meteen als kernel-newbie achterlijke vragen ga stellen aan de heren van MS (die lopen daar geregeld rond geloof ik) probeerde ik het eerst hier.
zover ik daar wat rond gebrowsed heb komen de meeste antworden daar van collega driver writers, die walter oney wil er ook nog wel es wat rond hobbelen en wat zinnigs in de rondte spui'en
Voor hetzelfde geld loopt hier gewoon een driver guru rond.... :)
Ik weet dat er pre BC3 een kerel was die filter drivers schreef voor z'n werk, maar wie het was en wat er met 'n gebeurd is...beats me..

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 19:57
Hij doet het! :)

Met dank aan Mr Walter Oney :)

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.


Verwijderd

Wat was er nou mis?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 19:57
Op dinsdag 26 maart 2002 17:42 schreef Yarvieh het volgende:
Wat was er nou mis?
Hum...was wel een domme fout. Bij de AddDevice routine had ik mijn driver niet correct aan de driverstack gehangen. Alle irp's kwamen verder wel door, maar de PnP irp's bleven waarschijnlijk hangen bij de bovenliggende driver.

Het leertraject voor de DDK is _echt_ 'uitdagend' :)

Kep ook maar dat standaard boek van Mr Oney aangeschaft. Wordt wel regelmatig naar verwezen in de newsgroups. (En terecht waarschijnlijk)

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