InstallHinfSectionA-Funktion (setupapi.h)

[Diese Funktion ist für die Verwendung in den betriebssystemen verfügbar, die im Abschnitt "Anforderungen" angegeben sind. Es kann in nachfolgenden Versionen geändert oder entfernt werden. SetupAPI sollte nicht mehr zum Installieren von Anwendungen verwendet werden. Verwenden Sie stattdessen den Windows Installer zum Entwickeln von Installationsprogrammen für Anwendungen. SetupAPI wird weiterhin zum Installieren 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 das Hilfsprogramm Rundll32.exe aufgerufen wird, wie im Abschnitt Hinweise beschrieben.

Der Prototyp für die InstallHinfSection-Funktion folgt der Form aller Einstiegspunktfunktionen, die mit Rundll32.exe verwendet werden.

Wenn eine Datei kopiert oder geändert wird, muss der Aufrufer dieser Funktion über Berechtigungen zum Schreiben in das Zielverzeichnis verfügen. Wenn Dienste installiert werden, muss der Aufrufer dieser Funktion Zugriff auf den Dienststeuerungs-Manager haben.

Syntax

void InstallHinfSectionA(
  [in] HWND      Window,
  [in] HINSTANCE ModuleHandle,
  [in] PCSTR     CommandLine,
  [in] INT       ShowCommand
);

Parameter

[in] Window

Das Handle des übergeordneten Fensters. In der Regel ist hwnd Null.

[in] ModuleHandle

Reserviert und sollte NULL sein.

[in] CommandLine

Zeiger auf den Puffer, der die Befehlszeile enthält. Sie sollten eine NULL-endende Zeichenfolge verwenden.

[in] ShowCommand

Reserviert und sollten null sein.

Rückgabewert

Keine

Bemerkungen

Beachten Sie, dass drei Exporte vorhanden sind: InstallHinfSection (für RunDll32), InstallHinfSectionA und InstallHinfSectionW.

Um einen Installationsabschnitt einer angegebenen INF-Datei auszuführen, können Sie InstallHinfSection mit der Rundll32.exe aufrufen, indem Sie die folgende Syntax verwenden.

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection-Abschnittsmoduspfad <><><>

Dadurch wird der Abschnittsmoduspfad<><><> an CmdLineBuffer übergeben.

Alternativ kann Ihr Programm InstallHinfSection, InstallHinfSectionA oder InstallHinfSectionW direkt aufrufen und den CmdLineBuffer-Parameter auf Folgendes festlegen.

"<section> <mode> <path>"

Dabei ist path der vollständige Pfad zur INF-Datei, modus ist der Neustartmodusparameter, und der Abschnitt ist ein beliebiger Installationsabschnitt in der INF-Datei. Das Kommatrennzeichen zwischen SETUPAPI.DLL und InstallHinfSection in der Befehlszeile ist erforderlich. Beachten Sie, dass keine Leerzeichen in der Befehlszeile zwischen dem Komma und SETUPAPI.DLL oder InstallHinfSection vorhanden sind.

Es wird empfohlen, den vollständigen Pfad zur INF-Datei als Pfad anzugeben.

Sie können jeden Installationsabschnitt in der INF-Datei als -Abschnitt angeben. Leerzeichen sind nicht zulässig.

Sie sollten eine Kombination der folgenden Werte für den Modus verwenden. Sie müssen 128 einschließen, um den Standardpfad der Installation auf den Speicherort des INF festzulegen, andernfalls wird von einem vom System bereitgestellten INF ausgegangen. 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 neu gestartet wird, wenn dies erforderlich ist.

Wert BESCHREIBUNG
0 Vom System bereitgestellter 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 einen Neustart durchführen 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 die Berechtigung.
 
 

Die folgende Befehlszeile führt beispielsweise den Abschnitt DefaultInstall der Datei Shell.inf aus. Wenn setup feststellt, dass ein Neustart erforderlich ist, wird der Benutzer mit dem Dialogfeld "Computer neu starten, Ja/Nein" aufgefordert.

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\WINDOWS\INF\SHELL. INF

Hinweis

Der Setupapi.h-Header definiert InstallHinfSection als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch 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.

Achtung

Bei Verwendung in einer anderen Architektur als x86 oder amd64 oder bei Verwendung auf einem System im S-Modus erfordert InstallHInfSection, dass die INF-Datei über einen INF-Versionsabschnitt mit einer CatalogFile-Direktive verfügt, die auf eine signierte Katalogdatei zeigt, die den Hash der INF-Datei und alle Dateien enthält, auf die die INF-Datei über einen INF-Abschnitt SourceDisksFiles verweist.

Achtung

Bei Verwendung auf einem System, dessen native Architektur nicht x86 oder amd64 ist, sollte InstallHInfSection aus einem nativen Architekturprozess verwendet werden. InstallHInfSection blockiert viele Arten von Systemzustandsänderungsvorgängen, wenn sie aus einem nicht nativen Architekturprozess verwendet werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile setupapi.h
Bibliothek Setupapi.lib
DLL Setupapi.dll