Share via


SetupInstallFromInfSectionW-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 SetupInstallFromInfSection-Funktion führt alle Anweisungen im Installationsabschnitt einer INF-Datei aus.

Wenn die Registrierung oder Datei geändert wird, muss der Aufrufer dieser Funktion über Berechtigungen zum Schreiben in das System- oder Zielverzeichnis verfügen.

Syntax

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

Parameter

Owner

Optionaler Zeiger auf das Fensterhandle auf das Fenster, das alle Dialogfelder besitzt, die während der Installation generiert werden, z. B. für Datenträgeraufforderungen oder Dateikopien. 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 "Installieren" in der zu verarbeitenden INF-Datei.

Flags

Steuert, welche Aktionen ausgeführt werden sollen. Die Flags können eine Kombination der folgenden Werte sein.

SPINST_INIFILES

Führen Sie INI-Dateivorgänge aus (UpdateInis, UpdateIniFields-Zeilen im Abschnitt Installieren, die verarbeitet werden).

SPINST_REGISTRY

Führen Sie Registrierungsvorgänge aus (AddReg, DelReg-Zeilen im Abschnitt Install werden verarbeitet).

SPINST_INI2REG

Führen Sie INI-File-to-Registry-Vorgänge aus (Ini2Reg-Zeilen im Abschnitt "Installieren ", die verarbeitet werden).

SPINST_LOGCONFIG

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

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

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

SPINST_FILES

Führen Sie Dateivorgänge aus (CopyFiles, DelFiles, RenFiles-Zeilen im Abschnitt Installieren , die verarbeitet werden).

SPINST_ALL

Führen Sie alle Installationsvorgänge aus.

SPINST_REGISTERCALLBACKAWARE

Wenn Sie die RegisterDlls-INF-Anweisung verwenden, um DLLs unter Windows 2000 selbst zu registrieren, erhalten Anrufer von SetupInstallFromInfSection möglicherweise Benachrichtigungen für jede Datei, wenn 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 plus entweder 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, fügen Sie SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR in Flags ein. Der Aufrufer muss auch den MsgHandler-Parameter angeben.

SPINST_UNREGSVR

Um beim Aufheben der Registrierung einer Datei eine Benachrichtigung an die Rückrufroutine zu senden, fügen Sie SPINST_REGISTERCALLBACKAWARE plus SPINST_UNREGSVR in die Flags ein. Der Aufrufer muss auch den MsgHandler-Parameter angeben.

RelativeKeyRoot

Optionaler Parameter, der angegeben werden muss, wenn Flags SPINST_REGISTRY oder SPINST_INI2REG enthalten. Behandeln Sie einen Registrierungsschlüssel, der als Stamm verwendet werden soll, wenn die INF-Datei HKR als Schlüssel angibt. Beachten Sie, dass dieser Parameter ignoriert wird, wenn SetupInstallFromInfSection mit dem optionalen DeviceInfoSet - und DeviceInfoData-Satz 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 enthalten. Gibt Flags an, die an die SetupQueueCopySection-Funktion übergeben werden sollen, wenn Dateien zum Kopieren in die Warteschlange gestellt werden. Diese Flags können eine Kombination der folgenden Werte sein.

SP_COPY_DELETESOURCE

Löschen Sie die Quelldatei nach erfolgreicher Kopie. Der Aufrufer wird nicht benachrichtigt, wenn beim Löschen ein Fehler auftritt.

SP_COPY_REPLACEONLY

Kopieren Sie die Datei nur, wenn dadurch eine Datei im Zielpfad überschrieben würde.

SP_COPY_NEWER_OR_SAME

Untersuchen Sie jede kopierte Datei, um festzustellen, ob ihre Versionsressourcen darauf hinweisen, dass es sich entweder um dieselbe Version oder nicht um eine neuere Version als eine vorhandene Kopie auf dem Ziel handelt.

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

Wenn die Quelldatei in version oder neuer nicht gleich ist 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_NEWER_ONLY

Überprüfen Sie jede kopierte Datei, um festzustellen, ob ihre Versionsressourcen darauf hinweisen, 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üfen Sie, ob die Zieldatei vorhanden ist, und benachrichtigen Sie in diesem Fall den Aufrufer, der möglicherweise ein Veto gegen die Kopie einlegt. 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 unkomprimierte Form des Quellnamens (falls zutreffend). Das Kopieren von f:/x86\cmd.ex_ in \install\temp führt beispielsweise zu einer Zieldatei von \install\temp\cmd.ex_. Wenn das SP_COPY_NODECOMP-Flag nicht angegeben wurde, würde die Datei dekomprimiert und das Ziel \install\temp\cmd.exe aufgerufen. Der Dateiname-Teil von DestinationName wird, sofern angegeben, 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 kopierte Datei, um festzustellen, ob sich ihre Sprache von der Sprache einer vorhandenen Datei unterscheidet, die bereits auf dem Ziel vorhanden ist. Wenn dies der Grund ist 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 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

Wenn das Ziel vorhanden ist, verhalten Sie sich so, als ob es verwendet wird, und stellen Sie die Datei zum Kopieren beim 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 beim späteren Aufrufen von SetupPromptReboot oder SetupScanFileQueue verwendet.

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 kopierte Datei, um festzustellen, ob ihre Versionsressourcen (oder Zeitstempel für Nicht-Bilddateien) 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. 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 das Format FileCallback aufweisen. Weitere Informationen finden Sie unter Benachrichtigungen.

Dieser Parameter ist nur optional, wenn der Flags-Parameter 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 eine Benachrichtigung an die Rückrufroutine gesendet, wenn die Dateiwarteschlange mit SetupCommitFileQueue committet wird.

MsgHandler muss festgelegt werden, wenn Flags SPINST_REGISTERCALLBACKAWARE plus SPINST_REGSVR oder SPINST_UNREGSVR enthalten. In diesem Fall wird einmal ein SPFILENOTIFY_STARTREGISTRATION oder SPFILENOTIFY_ENDREGISTRATION an die Rückrufroutine gesendet, sobald eine Datei mithilfe der RegisterDlls-INF-Anweisung unter Windows 2000 registriert oder aufgehoben wird.

Context

Wert, der an die Rückruffunktion übergeben werden soll, wenn die von dieser Routine erstellte Dateiwarteschlange intern über SetupCommitFileQueue committet wird. Der Context-Parameter ist nur optional, wenn der Flags-Parameter 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 von 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 Nichtzero-Wert.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Wenn ein UNC-Verzeichnis als Zielverzeichnis eines Dateikopiervorgangs angegeben wird, müssen Sie sicherstellen, dass es vorhanden ist, bevor Sie SetupInstallFromInfSection aufrufen. Die Setupfunktionen überprüfen nicht, ob UNC-Verzeichnisse vorhanden sind, und erstellen sie nicht. 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.

Hinweis

Der setupapi.h-Header 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 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
APIs 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