SetupGetFileCompressionInfoExA-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 SetupGetFileCompressionInfoEx-Funktion untersucht eine potenziell komprimierte Datei und ruft den Komprimierungstyp, den vollständigen Pfad der Datei (einschließlich Dateinamen), die komprimierte Größe und die Größe der unkomprimierten Zieldatei ab. Der Aufrufer der Funktion übergibt den Namen der zu untersuchenden Datei und zeigt auf Speicherorte für die Puffer- und Puffergröße, um den zurückgegebenen Dateinamen und Pfad zu empfangen.
Um die Größe des Puffers für den zurückgegebenen Pfad und Dateinamen zu bestimmen, können Sie SetupGetFileCompressionInfoEx aufrufen, wobei ActualSourceFileNameBuffernull und ActualSourceFileNameLen mit 0 angegeben ist. Die Funktion ist erfolgreich und wird bei rückgabe in RequiredBufferLen ausgefüllt.
Syntax
WINSETUPAPI BOOL SetupGetFileCompressionInfoExA(
[in] PCSTR SourceFileName,
[in, out] PSTR 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 dem Quellmedium nicht genau wie benannt gefunden wird, sucht Setup nach bis zu zwei alternativen Namen. Zum Beispiel; Wenn Setup F:\x86\cmd.exe nicht findet, sucht es nach F:\mpis\cmd.ex_, und wenn dieser Name nicht gefunden wird, sucht es nach F:\x86\cmd.ex$.
[in, out] ActualSourceFileNameBuffer
Zeiger 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 von ActualSourceFileNameBuffer angegebenen Puffers in Zeichen. In der Regel 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 ActualSourceFileNameBufferNULL ist.
[out] RequiredBufferLen
Größe des Dateinamens und des vollständigen Pfads einschließlich des beendenden NULL, wenn dieser Parameter nicht NULL ist. Wenn ActualSourceFileNameBufferNULL und ActualSourceFileNameLen null ist, ist die Funktion erfolgreich, füllt aber RequiredBufferLen aus. 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 ihrer aktuellen Form zurückgibt, d. h. die aktuelle Größe der Datei namens ActualSourceFileNameBuffer. Die Größe wird durch Untersuchen der Quelldatei bestimmt. es 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 belegt, wenn sie entkomprimiert oder kopiert wird. Wenn die Datei nicht komprimiert ist, ist dieser Wert mit SourceFileSize identisch. Die Größe wird durch die Untersuchung der Datei bestimmt. es 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 Für ActualSourceFileName verwendeten Komprimierungstyp angibt. 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 LZ-Komprimierung komprimiert.
FILE_COMPRESSION_MSZIP
Die Quelldatei wird mit der 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 einen der folgenden Systemfehlercodes zurückgeben.
Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Da SetupGetFileCompressionInfoEx die Komprimierung durch Untersuchen der physischen Datei bestimmt, sollte Ihre Setupanwendung sicherstellen, dass die Datei vorhanden ist, bevor SetupGetFileCompressionInfoEx aufgerufen wird.
Hinweis
Der setupapi.h-Header definiert SetupGetFileCompressionInfoEx als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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 |