Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Hardware-Treiber und Zugriffsrechte (https://www.delphipraxis.net/89317-hardware-treiber-und-zugriffsrechte.html)

messie 29. Mär 2007 13:10


Hardware-Treiber und Zugriffsrechte
 
Hallo,

wie wird die Rechtevergabe für Hardwarezugriffe gesteuert? Ich habe z.B. einen älteren Treiber für eine spezielle PCI-Karte, aber keine Rechte als Admin. Ich habe in einigen Fällen schon das Problem vermutet, daß ein Zugriff auf dlls etc. gesperrt wird (aktuell: ein ActiveX-Control für den Zugriff auf serielle Ports scheint unter Vista nicht zu funktionieren, da allerdings auch für Admins).
Wie kann man das lösen? Für die Programme selbst geht das ja mit der exe.manifest, gibt es da ähnliche Tricks für dlls bzw. ActiveX-Controls?

Grüße, Messie

Olli 9. Apr 2007 04:54

Re: Hardware-Treiber und Zugriffsrechte
 
Es gibt keine direkten Hardwarezugriffe unter Windows. Ein Treiber ist ja gerade dazu da die Abstraktion zu liefern. Daher gibt es Funktionen wie ReadFile(), WriteFile() und DeviceIoControl() welche dann auf die Device-Objekte des Treibers zugreifen können.

Allerdings stellt sich mir erstmal die Frage ob du wirklich einen Geräte-Treiber hast, oder ob das eines von diesen fiesen Teilen mit generischen Portzugriff ist.

messie 9. Apr 2007 09:49

Re: Hardware-Treiber und Zugriffsrechte
 
Zitat:

Zitat von Olli
Allerdings stellt sich mir erstmal die Frage ob du wirklich einen Geräte-Treiber hast, oder ob das eines von diesen fiesen Teilen mit generischen Portzugriff ist.

Moin Olli,

abgesehen davon, dass der generische Portzugriff etwas sehr sinnvolles sein kann, glaube ich in meinem Fall nicht daran. Denn unter XP laufen alle Treiber etc. und beim Portzugriff meldet das ja schon "privileged access". Und dass das unter VB6 erstellte ActiveX-Control für den Zugriff auf serielle Ports so arbeitet würde ich ausschließen. Serieller Zugriff ging schon unter Quickbasic für DOS ohne Portzugriffe.
Im Fall von ActiveX kann ich mir auch vorstellen, dass es sich richtig registrieren muss, das aber unter Vista nicht richtig funzt. Da habe ich aber kaum Erfahrungen mit, wie man das zur Laufzeit einsetzt. Wenn ich Controls hatte, habe ich sie bisher immer binär mit eingebunden.

Grüße, Messie

Olli 9. Apr 2007 15:05

Re: Hardware-Treiber und Zugriffsrechte
 
Zitat:

Zitat von messie
abgesehen davon, dass der generische Portzugriff etwas sehr sinnvolles sein kann, glaube ich in meinem Fall nicht daran.

Generischer Portzugriff ist niemals sinnvoll. Gezielter kann hingegen tatsächlich sinnvoll sein, da stimme ich dir zu.

Zitat:

Zitat von messie
Und dass das unter VB6 erstellte ActiveX-Control für den Zugriff auf serielle Ports so arbeitet würde ich ausschließen. Serieller Zugriff ging schon unter Quickbasic für DOS ohne Portzugriffe.

Du hast also ein ActiveX-Control aber keinen Treiber? Irgendwie verstehe ich jetzt nichts mehr.

Zitat:

Zitat von messie
Im Fall von ActiveX kann ich mir auch vorstellen, dass es sich richtig registrieren muss, das aber unter Vista nicht richtig funzt. Da habe ich aber kaum Erfahrungen mit, wie man das zur Laufzeit einsetzt. Wenn ich Controls hatte, habe ich sie bisher immer binär mit eingebunden.

"Binär mit eingebunden"? Was meinst du damit. REGSVR32 sollte doch in der Lage sein das Control zu registrieren, wenn es nicht bereits registriert ist. Danach taucht es in der Liste der registrierten Controls auf und du solltest in der Lage sein Delphi aus den Typinformationen eine Unit erstellen zu lassen.

Wenn es um den seriellen Port geht, kann man aber auch "einfach" den Port öffnen und wie bei einer normalen Datei lesen und schreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz