So, um meine eigene Frage zu beantworten. Eine kurze Suche nach einem der IOCTLs ergab folgendes:
http://bcb.net.ru/article/hard/index001.html
http://www.zsk.ict.pwr.wroc.pl/Dydak...ryf/Materialy/
http://www.ntcompatible.com/thread25771-1.html
http://msdn.microsoft.com/library/de...c1789a.xml.asp
So, damit wäre bewiesen, daß es unter WXP (und sehr wahrscheinlich auch unter NT4 und
W2K!) sehr wohl auf sichere Art und Weise geht, nämlich mit DeviceIoControl() ohne gleich generischen Portzugriff zu erlauben!
Nachtrag: Bitte benutzt keine solche Frickellösung mit extra Treiber für den Produktiveinsatz!!!! Um zu verdeutlichen was ich meine (und das ist wahrlich nicht als Angriff gemeint!) bedenke man doch bitte mal, wozu die Usermode/Kernelmode-Barriere in modernen Protected-Mode
OS existiert?! Nämlich dazu um direkten Hardwarezugriff zu vermeiden. Ich bin ja geradezu schon angetan davon, daß der Treiber über die HAL-Funktionen die Portzugriffe realisiert und nicht noch über stupides IN/OUT auf CPU-Ebene - dennoch -
generischer Portzugriff ist gefährlich. Bisher konnte ich in dem oben angebotenen Treiber keinerlei Barriere für bestimmte Portadressen finden (was in Minimum an Sicherheit sein sollte) - ich werde es mir aber weiter anschauen.
Es gibt sicher Bereiche in denen auch ein generisches Durchreichen von Portzugriffen seine Berechtigung hat, hier jedoch ist es einfach leichtsinnig.
Ansonsten würde ich empfehlen wir machen einen anderen Thread auf, wo alle, die Produkte mit einem solchen generischen Porttreiber benutzen (oder schlimmer: schreiben), ihre Produktnamen posten, damit sich der Benutzer wenigstens aussuchen kann, welche gefährlichen Produkte er nicht benutzt!