Freigeben über


SetupGetFileCompressionInfoExW-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 SetupGetFileCompressionInfoEx--Funktion untersucht eine potenziell komprimierte Datei und ruft den Typ der Komprimierung, den vollständigen Pfad der Datei (einschließlich Dateiname), die komprimierte Größe und die Größe der nicht komprimierten Zieldatei ab. Der Aufrufer der Funktion übergibt den Namen der zu untersuchenden Datei und verweist auf Speicherorte für den Puffer und die Puffergröße, um den zurückgegebenen Dateinamen und Pfad zu erhalten.

Um die Größe des Puffers für den zurückgegebenen Pfad und Dateinamen zu bestimmen, können Sie SetupGetFileCompressionInfoEx- mit ActualSourceFileNameBuffer angegebenen Null- und ActualSourceFileNameLen- mit 0 aufrufen. Die Funktion ist erfolgreich und gibt die Füllungen in RequiredBufferLenzurück.

Syntax

WINSETUPAPI BOOL SetupGetFileCompressionInfoExW(
  [in]      PCWSTR SourceFileName,
  [in, out] PWSTR  ActualSourceFileNameBuffer,
  [in, out] DWORD  ActualSourceFileNameBufferLen,
  [out]     PDWORD RequiredBufferLen,
  [out]     PDWORD SourceFileSize,
  [out]     PDWORD TargetFileSize,
  [out]     PUINT  CompressionType
);

Parameter

[in] SourceFileName

Dateiname der potenziell komprimierten Datei, die untersucht werden soll. Wenn die Datei auf den Quellmedien nicht genau wie benannt gefunden wird, sucht Setup nach bis zu zwei alternativen Namen. Zum Beispiel; wenn Setup F:\x86\cmd.exenicht findet, wird nach F:\mpis\cmd.ex_ gesucht, und wenn dieser Name nicht gefunden wird, wird nach F:\x86\cmd.ex$gesucht.

[in, out] ActualSourceFileNameBuffer

Zeigen Sie auf einen Puffer, der den tatsächlichen Dateinamen und Pfad empfängt, wenn dieser Parameter nicht NULL-ist. Dies ist nur gültig, wenn die Funktion NO_ERROR zurückgibt.

[in, out] ActualSourceFileNameBufferLen

Größe des durch ActualSourceFileNameBufferangegebenen Puffers in Zeichen. Normalerweise verwenden Sie eine Puffergröße von MAX_PATH. Wenn ActualSourceFileNameLen zu klein ist, schlägt die Funktion mit ERROR_INSUFFICIENT_BUFFER fehl. ActualSourceFileNameLen muss Null enthalten, wenn ActualSourceFileNameBuffer-NULL-ist.

[out] RequiredBufferLen

Die Größe des Dateinamens und des vollständigen Pfads einschließlich des endenden NULL-, wenn dieser Parameter nicht NULL-ist. Wenn ActualSourceFileNameBuffer- null ist und ActualSourceFileNameLen- null ist, wird die Funktion erfolgreich ausgeführt, aber in RequiredBufferLenausgefüllt. Dieser Parameter ist nur gültig, wenn die Funktion NO_ERROR oder ERROR_INSUFFICIENT_BUFFER zurückgibt.

[out] SourceFileSize

Zeiger auf eine Variable, in der diese Funktion die Größe der Datei in der aktuellen Form zurückgibt, bei der es sich um die aktuelle Größe der Datei handelt, die von ActualSourceFileNameBufferbenannt ist. Die Größe wird durch Untersuchen der Quelldatei bestimmt; sie wird nicht aus einer INF-Datei abgerufen. Die Quelldateigröße ist nur gültig, wenn die Funktion NO_ERROR oder ERROR_INSUFFICIENT_BUFFER zurückgibt.

[out] TargetFileSize

Zeiger auf eine Variable, in der diese Funktion die Größe zurückgibt, die die Datei einnimmt, wenn sie nicht komprimiert oder kopiert wird. Wenn die Datei nicht komprimiert ist, ist dieser Wert mit SourceFileSizeidentisch. Die Größe wird durch Untersuchen der Datei bestimmt; sie wird nicht aus einer INF-Datei abgerufen. Die Zieldateigröße ist nur gültig, wenn die Funktion NO_ERROR oder ERROR_INSUFFICIENT_BUFFER zurückgibt.

[out] CompressionType

Zeiger auf eine Variable, in der diese Funktion einen Wert zurückgibt, der den Typ der Komprimierung angibt, die für ActualSourceFileNameverwendet wird. Der Komprimierungstyp ist nur gültig, wenn die Funktion NO_ERROR oder ERROR_INSUFFICIENT_BUFFER zurückgibt. Dieser Parameterwert kann eines der folgenden Flags sein.

FILE_COMPRESSION_NONE

Die Quelldatei wird nicht mit einem erkannten Komprimierungsalgorithmus komprimiert.

FILE_COMPRESSION_WINLZA

Die Quelldatei wird mit der LZ-Komprimierung komprimiert.

FILE_COMPRESSION_MSZIP

Die Quelldatei wird mit MSZIP-Komprimierung komprimiert.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE (nonzero).

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE (Null). Die Funktion kann auch eine der folgenden Systemfehlercodeszurückgeben.

Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Da SetupGetFileCompressionInfoEx die Komprimierung durch Untersuchen der physischen Datei bestimmt, sollte Ihre Setupanwendung sicherstellen, dass die Datei vorhanden ist, bevor Sie SetupGetFileCompressionInfoExaufrufen.

Anmerkung

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

Siehe auch

Funktionen

Übersicht

SetupDecompressOrCopyFile-