Freigeben über


SetupInstallFromInfSectionA-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.]

Die funktion SetupInstallFromInfSection führt alle Direktiven in einer INF-Datei Abschnitt "Installieren" aus.

Wenn die Registrierung oder Datei geändert wird, ist der Aufrufer dieser Funktion erforderlich, um in das System- oder Zielverzeichnis zu schreiben.

Syntax

WINSETUPAPI BOOL SetupInstallFromInfSectionA(
  HWND                Owner,
  HINF                InfHandle,
  PCSTR               SectionName,
  UINT                Flags,
  HKEY                RelativeKeyRoot,
  PCSTR               SourceRootPath,
  UINT                CopyFlags,
  PSP_FILE_CALLBACK_A MsgHandler,
  PVOID               Context,
  HDEVINFO            DeviceInfoSet,
  PSP_DEVINFO_DATA    DeviceInfoData
);

Parameter

Owner

Optionaler Zeiger auf das Fensterhandle auf das Fenster, das über alle Dialogfelder verfügt, die während der Installation generiert werden, z. B. zum Kopieren von Datenträgern oder zum Kopieren von Dateien. Wenn Besitzer- nicht angegeben ist, werden diese Dialogfelder zu Fenstern der obersten Ebene.

InfHandle

Behandeln Sie die INF-Datei, die den zu verarbeitenden Abschnitt enthält.

SectionName

Name des Abschnitts Install in der INF-Datei, die verarbeitet werden soll.

Flags

Steuert, welche Aktionen ausgeführt werden sollen. Die Flags können eine Kombination aus den folgenden Werten sein.

SPINST_INIFILES

Ausführen von INI-Dateivorgängen (UpdateInis, UpdateIniFields Zeilen im Abschnitt "Installieren", der verarbeitet wird).

SPINST_REGISTRY

Ausführen von Registrierungsvorgängen (AddReg, DelReg Zeilen im Abschnitt Installieren verarbeitet).

SPINST_INI2REG

Führen Sie INI-Datei für Registrierungsvorgänge aus (Ini2Reg Zeilen im Abschnitt Installieren verarbeitet).

SPINST_LOGCONFIG

Dieses Kennzeichen wird nur bei der Installation eines Gerätetreibers verwendet.

Ausführen logischer Konfigurationsvorgänge (LogConf- Zeilen im Abschnitt Installieren verarbeitet). Dieses Flag wird nur verwendet, wenn DeviceInfoSet- und DeviceInfoData- angegeben werden.

Weitere Informationen zum Installieren von Gerätetreibern, LogConf-, DeviceInfoSet-oder DeviceInfoData-finden Sie im DDK Programmierhandbuch.

SPINST_FILES

Ausführen von Dateivorgängen (CopyFiles, DelFiles, RenFiles Zeilen im Abschnitt Installieren).

SPINST_ALL

Führen Sie alle Installationsvorgänge aus.

SPINST_REGISTERCALLBACKAWARE

Wenn Sie die RegisterDlls INF-Direktive verwenden, um DLLs unter Windows 2000 selbst zu registrieren, erhalten Anrufer von SetupInstallFromInfSection möglicherweise Benachrichtigungen zu jeder Datei, da sie registriert oder nicht registriert ist. Um eine SPFILENOTIFY_STARTREGISTRATION- oder SPFILENOTIFY_ENDREGISTRATION-Benachrichtigung an die Rückrufroutine zu senden, schließen Sie SPINST_REGISTERCALLBACKAWARE sowie SPINST_REGSVR oder SPINST_UNREGSVR ein. Der Aufrufer muss auch den MsgHandler Parameter festlegen.

SPINST_REGSVR

Um beim Registrieren einer Datei eine Benachrichtigung an die Rückrufroutine zu senden, schließen Sie SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR in Flagsein. Der Aufrufer muss auch den MsgHandler Parameter angeben.

SPINST_UNREGSVR

Wenn Sie beim Aufheben der Registrierung einer Datei eine Benachrichtigung an die Rückrufroutine senden möchten, fügen Sie SPINST_REGISTERCALLBACKAWARE plus SPINST_UNREGSVR in die Flagsein. Der Aufrufer muss auch den MsgHandler Parameter angeben.

RelativeKeyRoot

Optionaler Parameter, der angegeben werden muss, wenn Flags SPINST_REGISTRY oder SPINST_INI2REG enthält. Handle to a registry key to be used as the root when the INF file specifies HKR as the key. Beachten Sie, dass dieser Parameter ignoriert wird, wenn SetupInstallFromInfSection- mit dem optionalen DeviceInfoSet- und DeviceInfoData- aufgerufen wird.

SourceRootPath

Quellstamm für Dateikopien. Ein Beispiel wäre A:\ oder \pegasus\win\install. Wenn Flags SPINST_FILES enthält und SourceRootPath- NULL ist, stellt das System einen Standardstammpfad bereit.

CopyFlags

Optionaler Parameter, der angegeben werden muss, wenn Flags SPINST_FILES enthält. Gibt Flags an, die an die SetupQueueCopySection-Funktion übergeben werden sollen, wenn Dateien für die Kopie in die Warteschlange gestellt werden. Diese Flags können eine Kombination aus den folgenden Werten sein.

SP_COPY_DELETESOURCE

Löschen Sie die Quelldatei nach erfolgreicher Kopie. Der Anrufer wird nicht benachrichtigt, wenn der Löschvorgang fehlschlägt.

SP_COPY_REPLACEONLY

Kopieren Sie die Datei nur, wenn dies geschieht, eine Datei im Zielpfad überschreiben würde.

SP_COPY_NEWER_OR_SAME

Überprüfen Sie jede Datei, die kopiert wird, um festzustellen, ob die Versionsressourcen angeben, dass sie entweder die gleiche Oder nicht neuer als eine vorhandene Kopie des Ziels ist.

Die Dateiversionsinformationen, die bei Versionsüberprüfungen verwendet werden, sind die in der dwFileVersionMS und dwFileVersionLS Member einer VS_FIXEDFILEINFO Struktur angegeben, wie sie von den Versionsfunktionen ausgefüllt werden. Wenn eine der Dateien keine Versionsressourcen enthält oder identische Versionsinformationen enthalten, wird die Quelldatei als neuer betrachtet.

Wenn die Quelldatei in version oder neuer nicht gleich ist und CopyMsgHandler angegeben wird, wird der Aufrufer benachrichtigt und kann die Kopie abbrechen. Wenn CopyMsgHandler nicht angegeben ist, wird die Datei nicht kopiert.

SP_COPY_NEWER_ONLY

Überprüfen Sie jede Datei, die kopiert wird, um festzustellen, ob die Versionsressourcen angeben, dass sie nicht neuer als eine vorhandene Kopie des Ziels ist. Wenn die Quelldatei neuer, aber nicht gleich der Version des vorhandenen Ziels ist, wird die Datei kopiert.

SP_COPY_NOOVERWRITE

Überprüfen Sie, ob die Zieldatei vorhanden ist, und benachrichtigen Sie in diesem Fall den Anrufer, der die Kopie veto kann. Wenn CopyMsgHandler nicht angegeben ist, wird die Datei nicht überschrieben.

SP_COPY_NODECOMP

Dekomprimieren Sie die Datei nicht. Wenn dieses Flag festgelegt ist, erhält die Zieldatei nicht die nicht komprimierte Form des Quellnamens (falls zutreffend). Beispielsweise führt das Kopieren von f:/x86\cmd.ex_ in \install\temp zu einer Zieldatei von \install\temp\cmd.ex_. Wenn das SP_COPY_NODECOMP Flag nicht angegeben wurde, wird die Datei dekomprimiert, und das Ziel wird \install\temp\cmd.exeaufgerufen. Der Dateinameteil von DestinationName, falls angegeben, wird entfernt und durch den Dateinamen der Quelldatei ersetzt. Wenn SP_COPY_NODECOMP angegeben ist, können keine Sprach- oder Versionsinformationen überprüft werden.

SP_COPY_LANGUAGEAWARE

Überprüfen Sie jede Datei, die kopiert wird, um festzustellen, ob sich ihre Sprache von der Sprache einer vorhandenen Datei unterscheidet, die sich bereits auf dem Ziel befindet. Wenn ja, und CopyMsgHandler angegeben ist, wird der Aufrufer benachrichtigt und kann die Kopie abbrechen. Wenn CopyMsgHandler nicht angegeben ist, wird die Datei nicht kopiert.

SP_COPY_SOURCE_ABSOLUTE

SourceFile- ist ein vollständiger Quellpfad. Suchen Sie sie nicht im SourceDisksNames Abschnitt der INF-Datei nach.

SP_COPY_SOURCEPATH_ABSOLUTE

SourcePathRoot- ist der vollständige Pfadteil der Quelldatei. Ignorieren Sie die relative Quelle, die in der SourceDisksNames Abschnitt der INF-Datei für die Quellmedien angegeben ist, in der sich die Datei befindet. Dieses Kennzeichen wird ignoriert, wenn SP_COPY_SOURCE_ABSOLUTE angegeben wird.

SP_COPY_FORCE_IN_USE

Wenn das Ziel vorhanden ist, verhalten Sie sich so, als ob sie verwendet wird, und stellen Sie die Datei zum Kopieren im nächsten Systemneustart in die Warteschlange.

SP_COPY_IN_USE_NEEDS_REBOOT

Wenn die Datei während des Kopiervorgangs verwendet wurde, informieren Sie den Benutzer darüber, dass das System neu gestartet werden muss. Dieses Flag wird nur verwendet, wenn später SetupPromptReboot oder SetupScanFileQueueaufgerufen wird.

SP_COPY_NOSKIP

Geben Sie dem Benutzer nicht die Möglichkeit, eine Datei zu überspringen.

SP_COPY_FORCE_NOOVERWRITE

Überprüfen Sie, ob die Zieldatei vorhanden ist, und wenn ja, wird die Datei nicht überschrieben. Der Anrufer wird nicht benachrichtigt.

SP_COPY_FORCE_NEWER

Überprüfen Sie jede datei, die kopiert wird, um festzustellen, ob ihre Versionsressourcen (oder Zeitstempel für Nicht-Bilddateien) angeben, dass sie nicht neuer als eine vorhandene Kopie des Ziels ist. Wenn die kopierte Datei nicht neuer ist, wird die Datei nicht kopiert. Der Anrufer wird nicht benachrichtigt.

SP_COPY_WARNIFSKIP

Wenn der Benutzer versucht, eine Datei zu überspringen, warnen Sie, dass sich das Überspringen einer Datei auf die Installation auswirken kann. (Wird für systemkritische Dateien verwendet.)

MsgHandler

Zeiger auf die Rückrufroutine. Die Rückrufroutine muss im Format FileCallback-sein. Weitere Informationen finden Sie unter Benachrichtigungen.

Dieser Parameter ist nur optional, wenn der parameter Flags nicht SPINST_FILES, SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR oder SPINST_UNREGSVR enthält.

MsgHandler- muss festgelegt werden, wenn Flags SPINST_FILES enthält. In diesem Fall wird die Benachrichtigung an die Rückrufroutine gesendet, wenn die Dateiwarteschlange mit SetupCommitFileQueuezugesichert wird.

MsgHandler muss festgelegt werden, wenn Flags SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR oder SPINST_UNREGSVR enthält. In diesem Fall wird ein SPFILENOTIFY_STARTREGISTRATION oder SPFILENOTIFY_ENDREGISTRATION einmal bei jeder Registrierung oder Aufhebung der Registrierung einer Datei mithilfe der RegisterDlls INF-Direktive unter Windows 2000 an die Rückrufroutine gesendet.

Context

Wert, der an die Rückruffunktion übergeben werden soll, wenn die intern von dieser Routine erstellte Dateiwarteschlange über SetupCommitFileQueuezugesichert wird. Der parameter Context ist nur optional, wenn der parameter Flags nicht SPINST_FILES enthält. Dieser Parameter muss angegeben werden, wenn Flags SPINST_FILES enthält.

DeviceInfoSet

Optionaler Zeiger auf ein Handle auf einen Geräteinformationssatz. Weitere Informationen zu den Setupfunktionen des Geräteinstallationsprogramms finden Sie im DDK-Programmierhandbuch.

DeviceInfoData

Optionaler Zeiger auf einen Zeiger auf die SP_DEVINFO_DATA-Struktur, die einen Kontext zu einem bestimmten Element in der durch DeviceInfoSet angegebenen Gruppe bereitstellt. Weitere Informationen zu den Setupfunktionen des Geräteinstallationsprogramms finden Sie im DDK Programmierhandbuch.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Wert ungleich Null.

Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Wenn ein UNC-Verzeichnis als Zielverzeichnis eines Dateikopievorgangs angegeben ist, müssen Sie sicherstellen, dass es vorhanden ist, bevor Sie SetupInstallFromInfSectionaufrufen. Die Setupfunktionen überprüfen nicht, ob UNC-Verzeichnisse vorhanden sind und nicht erstellt werden. Wenn das UNC-Zielverzeichnis nicht vorhanden ist, schlägt die Dateiinstallation fehl.

Für diese Funktion ist eine Windows INF-Datei erforderlich. Einige ältere INF-Dateiformate werden möglicherweise nicht unterstützt.

Anmerkung

Der header setupapi.h definiert SetupInstallFromInfSection 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.

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
API-Satz ext-ms-win-setupapi-classinstallers-l1-1-2 (eingeführt in Windows 10, Version 10.0.14393)

Siehe auch

Funktionen

Übersicht

SPFILENOTIFY_ENDREGISTRATION

SPFILENOTIFY_STARTREGISTRATION

SetupInstallServicesFromInfSection