SetupInstallFilesFromInfSectionA-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 für die Installation von Anwendungen verwendet werden. Verwenden Sie stattdessen den Windows Installer zum Entwickeln von Anwendungsinstallationsprogrammen. SetupAPI wird weiterhin zum Installieren von Gerätetreibern verwendet.]
Die SetupInstallFilesFromInfSection-Funktion stellt alle Dateien für eine Installation in die Warteschlange, die in den Abschnitten Kopieren, Löschen von Dateien und Umbenennen von Dateien angegeben sind, in die Warteschlange.
Wenn eine Datei geändert wird, muss der Aufrufer dieser Funktion über Berechtigungen zum Schreiben in das Zielverzeichnis verfügen.
Syntax
WINSETUPAPI BOOL SetupInstallFilesFromInfSectionA(
[in] HINF InfHandle,
[in] HINF LayoutInfHandle,
[in] HSPFILEQ FileQueue,
[in] PCSTR SectionName,
[in] PCSTR SourceRootPath,
[in] UINT CopyFlags
);
Parameter
[in] InfHandle
Das Handle für eine INF-Datei, die den zu installierenden Abschnitt enthält.
[in] LayoutInfHandle
Ein optionaler Zeiger auf ein Handle auf die INF-Datei, die die Abschnitte SourceDisksFiles und SourceDisksNames enthält.
Wenn LayoutInfHandle nicht angegeben ist, werden die Abschnitte SourceDisksFiles und SourceDisksNames aus InfHandle verwendet.
[in] FileQueue
Das Handle für die Warteschlange, in der Installationsvorgänge hinzugefügt werden sollen.
[in] SectionName
Der Name des Abschnitts Installieren im InfHandle-Parameter , in dem die Abschnitte Dateien kopieren, Dateien löschen und Dateien umbenennen aufgelistet sind, die die zu installierenden Dateien enthalten.
Verwenden Sie eine NULL-Zeichenfolge.
[in] SourceRootPath
Ein optionaler Zeiger auf einen Stammpfad zu den zu kopierenden Quelldateien, z. B. A:\ oder \pegasus\win\install.
Verwenden Sie eine NULL-Zeichenfolge.
[in] CopyFlags
Ein optionaler Zeiger auf eine Reihe von Flags, die das Verhalten des Dateikopiervorgangs steuern.
Die Flags können eine Kombination der folgenden Werte sein.
SP_COPY_DELETESOURCE
Löscht die Quelldatei, wenn der Kopiertask erfolgreich ist.
Der Aufrufer wird nicht benachrichtigt, wenn ein Löschvorgang fehlschlägt.
SP_COPY_REPLACEONLY
Kopiert eine Datei nur, um eine Datei im Zielpfad zu überschreiben.
SP_COPY_NEWER_OR_SAME
Untersucht jede datei, die kopiert wird, um festzustellen, ob die Versionsressourcen angeben, dass es sich um dieselbe Version handelt oder nicht neuer als eine vorhandene Kopie auf dem Ziel.
Wenn die Quelldatei keine neuere oder gleiche Version ist, benachrichtigt die Funktion den Aufrufer, der die Kopie abbrechen kann.
Die Dateiversionsinformationen, die bei Versionsüberprüfungen verwendet werden, werden in den Membern dwFileVersionMS und dwFileVersionLS einer VS_FIXEDFILEINFO-Struktur angegeben, die von den Win32-Versionsfunktionen ausgefüllt werden.
Wenn eine der Dateien keine Versionsressourcen enthält oder identische Versionsinformationen enthält, wird die Quelldatei als neuer betrachtet.
SP_COPY_NEWER_ONLY
Untersucht jede Datei, die kopiert wird, um zu ermitteln, ob ihre Versionsressourcen angeben, dass sie nicht neuer als eine vorhandene Kopie auf dem Ziel ist.
Wenn die Quelldatei neuer ist, aber in der Version des vorhandenen Ziels nicht gleich ist, wird die Datei kopiert.
SP_COPY_NOOVERWRITE
Überprüft, ob die Zieldatei vorhanden ist.
Wenn die Zieldatei vorhanden ist, benachrichtigt die Funktion den Aufrufer, der die Kopie abbrechen kann.
SP_COPY_NODECOMP
Eine Datei wird nicht dekomprimieren.
Wenn dieses Flag festgelegt ist, erhält die Zieldatei nicht die unkomprimierte Form des Quellnamens, z. B. wenn Sie f:\x86\cmd.ex_ in \install\temp kopieren, ist das Ergebnis die folgende Zieldatei: \install\temp\cmd.ex_.
Wenn das SP_COPY_NODECOMP-Flag nicht angegeben wird, wird die Datei dekomprimiert, und das Ziel wird \install\temp\cmd.exe aufgerufen.
Der Dateiname-Teil von DestinationName wird gelöscht und durch den Dateinamen der Quelldatei ersetzt. Wenn SP_COPY_NODECOMP angegeben ist, können Sprach- und Versionsinformationen nicht überprüft werden.
SP_COPY_LANGUAGEAWARE
Untersucht jede Datei, die kopiert wird, um festzustellen, ob sich die Sprache von der Sprache einer vorhandenen Datei unterscheidet, die bereits auf dem Ziel vorhanden ist.
Wenn die Sprache anders ist, benachrichtigt die Funktion den Aufrufer, der den Kopiervorgang abbrechen kann.
SP_COPY_SOURCE_ABSOLUTE
SourceFile ist ein vollständiger Quellpfad.
Suchen Sie es nicht im Abschnitt SourceDisksNames der INF-Datei.
SP_COPY_SOURCEPATH_ABSOLUTE
SourcePathRoot ist der vollständige Pfadteil der Quelldatei.
Ignorieren Sie die relative Quelle, die im Abschnitt SourceDisksNames der INF-Datei für das Quellmedium angegeben ist, in dem sich die Datei befindet. Dieses Flag wird ignoriert, wenn SP_COPY_SOURCE_ABSOLUTE angegeben ist.
SP_COPY_FORCE_IN_USE
Stellt die Datei zum Kopieren beim nächsten Systemneustart in die Warteschlange, wenn das Ziel vorhanden ist und verwendet wird.
SP_COPY_IN_USE_NEEDS_REBOOT
Benachrichtigt den Benutzer, dass das System neu gestartet werden muss, wenn die Datei während eines Kopiervorgangs verwendet wird.
SP_COPY_NOSKIP
Gibt dem Benutzer nicht die Möglichkeit, eine Datei zu überspringen.
SP_COPY_FORCE_NOOVERWRITE
Überprüft, ob die Zieldatei vorhanden ist, und wenn das Ziel vorhanden ist, wird die Datei nicht überschrieben, und der Aufrufer wird nicht benachrichtigt.
SP_COPY_FORCE_NEWER
Untersucht jede Datei, die kopiert wird, um festzustellen, dass ihre Versionsressourcen (oder Zeitstempel für Nichtbilddateien) darauf hinweisen, dass sie nicht neuer als eine vorhandene Kopie auf dem Ziel ist.
Wenn die kopierte Datei nicht neuer ist, wird die Datei nicht kopiert, und der Aufrufer wird nicht benachrichtigt.
SP_COPY_WARNIFSKIP
Warnt, dass sich das Überspringen einer Datei auf eine Installation auswirken kann, wenn der Benutzer versucht, eine Datei zu überspringen.
Verwenden Sie dieses Flag für systemkritische Dateien.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Nichtzero-Wert.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert 0 (null). Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
SetupInstallFilesFromInfSection kann mehrmals aufgerufen werden, um die Dateien in eine Warteschlange zu stellen, die in mehreren INF-Abschnitten angegeben sind. Nachdem die Warteschlange erfolgreich committet und die Dateien kopiert, umbenannt und/oder gelöscht wurden, kann SetupInstallFromInfSection aufgerufen werden, um Registrierungs- und INI-Installationsvorgänge auszuführen.
Wenn ein UNC-Verzeichnis als Zielverzeichnis einer Dateiinstallation angegeben wird, müssen Sie sicherstellen, dass das UNC-Verzeichnis vorhanden ist, bevor Sie SetupInstallFilesFromInfSection aufrufen. Die Setupfunktionen überprüfen nicht, ob Verzeichnisse vorhanden sind, und erstellen keine UNC-Verzeichnisse. Wenn das UNC-Zielverzeichnis nicht vorhanden ist, schlägt die Dateiinstallation fehl.
Hinweis
Der setupapi.h-Header definiert SetupInstallFilesFromInfSection 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 nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
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 |