Setupapi zur Installation eines Netzwerk-filters
-
Hallo!
Ich versuche ein Programm in C++ zu schreiben, welches einen NDIS Filter Treiber installiert. Ich habe alle Dateien, die ich brauche (inf, dll, sys) und die manuelle Installation über die Eigenschaften einer Netzwerkverbindung funktioniert einwandfrei. Die Anwendung, die ich schreiben möchte, soll das nun automatisch tun, was ich von Hand gemacht habe.Wenn ich von Hand installiere, werden folgende Registry-Einträge erzeugt:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\{4D36E974-E325-11CE-BFC1-08002BE10318}\{1C2A7340-53E0-4C47-8627-16553E117DA2}.die 2. GUID sieht irgendwie zufällig aus, die erste beschreibt das Netzwerkinterface.
In einem Archiv einer Mailing-Liste habe ich ein Programm gefunden, welches die SetupAPI benutzt und basierend auf dem .inf file die Installation des Filters vornimmt. Da gibt es aber noch ungereimtheiten:
(http://www.ntdev.org/archive/ntdev0008/msg0006.html)Verwende ich das o.g. Beispiel, so werden die registry-Keys an einer anderen Stelle abgelegt, als wenn ich den Filter von Hand installiere.
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E974-E325-11CE-BFC1-08002BE10318}.
Der Unterschied ist:
...\Control\Class...
...\Control\Network...Unter der GUID {4D36E974-E325-11CE-BFC1-08002BE10318} gibt es keinen 2. GUID folder (eben wie
{1C2A7340-53E0-4C47-8627-16553E117DA2} im ersten Beispiel) und die Registry-Einträge für diesen Folder
(Characteristics, ComponentId, Description, InfPath, InfSection) fehlen auch.Die Frage ist also: Verwendet das Beispiel aus dem Link die richtige Methode, oder bin ich auf dem falschen Dampfer?
Oder: Wo liegt der Unterschied in der Art, wie die beiden Methoden den Filter installieren? Wo ist der Unterschied im Ergebnis?Danke im voraus!
A.
-
Hi!
Ist das Problem noch aktuell?
Wenn ja, gib mir mal deine E-Mail-Adresse.MFG willi