InstallHinfSectionW-Funktion (setupapi.h)
[Diese Funktion steht für die Verwendung in den im Abschnitt "Anforderungen" angegebenen Betriebssystemen zur Verfügung. Sie kann in nachfolgenden Versionen geändert oder nicht verfügbar sein. SetupAPI sollte nicht mehr für die Installation von Anwendungen verwendet werden. Verwenden Sie stattdessen den Windows Installer zum Entwickeln von Anwendungsinstallationsprogrammen. SetupAPI wird weiterhin für die Installation von Gerätetreibern verwendet.]
InstallHinfSection ist eine Einstiegspunktfunktion, die von Setupapi.dll exportiert wird, mit der Sie einen Abschnitt einer INF-Datei ausführen können. InstallHinfSection- kann aufgerufen werden, indem sie das hilfsprogramm Rundll32.exe aufrufen, wie im Abschnitt "Hinweise" beschrieben.
Der Prototyp für die InstallHinfSection--Funktion folgt der Form aller Einstiegspunktfunktionen, die mit Rundll32.exeverwendet werden.
Wenn eine Datei kopiert oder geändert wird, ist der Aufrufer dieser Funktion erforderlich, um in das Zielverzeichnis zu schreiben. Wenn Dienste installiert werden, ist der Aufrufer dieser Funktion erforderlich, zugriff auf den Service Control Manager.
Syntax
void InstallHinfSectionW(
[in] HWND Window,
[in] HINSTANCE ModuleHandle,
[in] PCWSTR CommandLine,
[in] INT ShowCommand
);
Parameter
[in] Window
Der übergeordnete Fensterziehpunkt. In der Regel ist hwnd- Null.
[in] ModuleHandle
Reserviert und sollte Null sein.
[in] CommandLine
Zeiger auf Puffer, der die Befehlszeile enthält. Sie sollten eine mit Null beendete Zeichenfolge verwenden.
[in] ShowCommand
Reserviert und sollte null sein.
Rückgabewert
Nichts
Bemerkungen
Beachten Sie, dass drei Exporte vorhanden sind: InstallHinfSection (für RunDll32), InstallHinfSectionAund InstallHinfSectionW.
Zum Ausführen eines Install Abschnitt einer angegebenen INF-Datei können Sie InstallHinfSection- mit dem Rundll32.exe mithilfe der folgenden Syntax aufrufen.
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection <Abschnitt><Modus><Pfad>
Dadurch wird<Abschnitt><Modus><Pfad>" an CmdLineBufferübergeben.
Alternativ kann Ihr Programm InstallHinfSection, InstallHinfSectionAoder InstallHinfSection W direkt aufrufen, indem sie den CmdLineBuffer Parameter auf folgendes festlegen.
"<section> <mode> <path>"
Wenn Pfad der vollständige Pfad zur INF-Datei ist, ist Modus der Parameter für den Neustartmodus, und Abschnitt ist ein beliebiger Install Abschnitt in der INF-Datei. Das Kommatrennzeichen zwischen SETUPAPI.DLL und InstallHinfSection- in der Befehlszeile ist erforderlich. Beachten Sie, dass in der Befehlszeile zwischen Komma und SETUPAPI.DLL oder InstallHinfSectionkein Leerzeichen vorhanden ist.
Es wird empfohlen, den vollständigen Pfad zur INF-Datei als Pfadanzugeben.
Sie können einen beliebigen Abschnitt Install in der INF-Datei als Abschnittangeben. Es sind keine Leerzeichen zulässig.
Sie sollten eine Kombination der folgenden Werte für Modusverwenden. Sie müssen 128 einschließen, um den Standardpfad der Installation auf den Speicherort des INF festzulegen, andernfalls wird ein vom System bereitgestellter INF angenommen. Fügen Sie Werte hinzu, um einen Neustart anzugeben. Beachten Sie, dass nur die Werte 128 oder 132 empfohlen werden, andere Werte können dazu führen, dass der Computer unnötig neu gestartet wird oder nicht, wenn er erforderlich ist.
Wert | Beschreibung |
---|---|
0 | System bereitgestellt INF. |
128 | Legen Sie den Standardpfad der Installation auf den Speicherort des INF fest. Dies ist die typische Einstellung. |
+0 | Starten Sie den Computer nie neu. |
+1 | Starten Sie den Computer in allen Fällen neu. |
+2 | Fragen Sie die Benutzer immer, ob sie neu starten möchten. |
+3 | Starten Sie den Computer bei Bedarf neu, ohne den Benutzer um Erlaubnis zu bitten. |
+4 | Wenn ein Neustart des Computers erforderlich ist, bitten Sie den Benutzer vor dem Neustart um Erlaubnis. |
Die folgende Befehlszeile führt beispielsweise den DefaultInstall-Abschnitt der Datei "Shell.inf" aus. Wenn Setup feststellt, dass ein Neustart erforderlich ist, wird der Benutzer mit einem Dialogfeld "Computer neu starten, Ja/Nein" aufgefordert.
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\WINDOWS\INF\SHELL. INF-
Anmerkung
Der Header "setupapi.h" definiert InstallHinfSection als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Vorsicht
Bei Verwendung in einer anderen Architektur als x86 oder amd64 oder bei Verwendung auf einem System im S-Moduserfordert InstallHInfSection, dass die INF-Datei über einen INF-Versionsabschnitt mit einer CatalogFile-Direktive verfügt, die auf eine signierte Katalogdatei verweist, die den Hash der INF-Datei und alle Dateien enthält, auf die die INF-Datei über einen INF SourceDisksFiles Section.
Vorsicht
Bei Verwendung auf einem System, dessen systemeigene Architektur nicht x86 oder amd64 ist, sollte InstallHInfSection aus einem systemeigenen Architekturprozess verwendet werden. InstallHInfSection blockiert viele Arten von Systemzustandsänderungsvorgängen, wenn sie von einem nicht systemeigenen Architekturprozess verwendet werden.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | setupapi.h |
Library | Setupapi.lib |
DLL- | Setupapi.dll |