Zugriff von mehreren Programmen

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
bios
Posts: 1
Joined: Fri Jul 13, 2007 10:56 am

Zugriff von mehreren Programmen

Post by bios »

Hallo,

wir haben hier zwei IO-Warrior 56, die an einem Rechner angeschlossen, jedoch von zwei verschiedenen Programmen bedient werden sollen.
Dazu habe ich eine DLL geschrieben (shared memory), auf die beide Programme zugreifen und sich das Handle für den IO-Warrior holen sollen.

Soweit funktioniert alles, die zwei Programme bekommen die unterschiedlichen Handles. Lasse ich jetzt Programm 1 den IO-Warrior 1 lesen (IO-Warrior schickt Read-Anfrage an meine DLL, die dann abfragen soll und die Werte zurückgibt), klappt alles. Sobald ich das Programm 2 starte, bekomme ich eine "Zugriffsverletzung an Leseposition 0x000000a8" in der iowkit.dll.

Ist mit der iowkit.dll ein solches Vorhaben überhaupt möglich? Dass nur ein Programm auf die DLL zugreifen kann, weiß ich, jedoch sollte dies ja kein Problem sein, da meine Programme die Abfrage an meine DLL weiter geben und diese dann als ein Prozess den Zugriff erledigt.


Danke,
Bios
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Ich wüsste nicht was die iowkit.dll für ein Problem damit haben sollte, da sie ja nur von einer Entity aus angesprochen wird. Das wird wohl eher ein Problem in der vorgeschalteten DLL sein, dass die z.B. versucht die iowkit.dll noch mal zu öffnen.
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Die 1.5 iowkit.dll sollte eigentlich verhindern das zwei Programme auf einen IOWarrior zugreifen koennen.

Es gibt ein Windows-Problem mit dem Zugriff auf HID-Geraete allgemein. Wenn zwei Programme von einem Geraet lesen, dann bekommt jedes eine eigene Kopie der Daten. Das verdirbt komplett die Funktion, da man nicht mehr weiss ob das die eigene Antwort auf eine Anfrage ist oder die eines anderen Programms.
Aus diesem Grund wird gerade das 2.0 API erarbeitet, das aus einem Serverprozess besteht der exklusiv die IOWarrior verwaltet.
Post Reply