GetCompressedFileSizeTransactedA-Funktion (winbase.h)

[Microsoft empfiehlt Entwicklern dringend, alternative Mittel zu verwenden, um die Anforderungen Ihrer Anwendung zu erfüllen. Viele Szenarios, für die TxF entwickelt wurde, können mit einfacheren und leichter verfügbaren Techniken erreicht werden. Darüber hinaus ist TxF in zukünftigen Versionen von Microsoft Windows möglicherweise nicht verfügbar. Weitere Informationen und Alternativen zu TxF finden Sie unter Alternativen zur Verwendung von transaktionalem NTFS.]

Ruft den tatsächlichen Datenträgerspeicher (in Byte), der zum Speichern einer angegebenen Datei verwendet wird, als Transaktionsvorgang ab. Wenn sich die Datei auf einem Volume befindet, das die Komprimierung unterstützt, und die Datei komprimiert wird, ist der abgerufene Wert die komprimierte Größe der angegebenen Datei. Wenn sich die Datei auf einem Volume befindet, das Sparsedateien unterstützt, und die Datei eine Sparsedatei ist, entspricht der abgerufene Wert der Sparsegröße der angegebenen Datei.

Syntax

DWORD GetCompressedFileSizeTransactedA(
  [in]            LPCSTR  lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh,
  [in]            HANDLE  hTransaction
);

Parameter

[in] lpFileName

Der Name der Datei.

Geben Sie nicht den Namen einer Datei auf einem nicht aufrufenden Gerät an, z. B. einer Pipe oder einem Kommunikationsgerät, da die Dateigröße keine Bedeutung hat.

Die Datei muss sich auf dem lokalen Computer befinden. andernfalls schlägt die Funktion fehl, und der letzte Fehlercode wird auf ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE festgelegt.

[out, optional] lpFileSizeHigh

Ein Zeiger auf eine Variable, die die hohe DWORD-Reihenfolge der komprimierten Dateigröße empfängt. Der Rückgabewert der Funktion ist der DWORD-Wert in niedriger Reihenfolge der komprimierten Dateigröße.

Dieser Parameter kann NULL sein, wenn die hohe DWORD-Reihenfolge der komprimierten Dateigröße nicht erforderlich ist. Dateien, die weniger als 4 Gigabyte groß sind, benötigen nicht das hochwertige DWORD.

[in] hTransaction

Ein Handle für die Transaktion. Dieses Handle wird von der CreateTransaction-Funktion zurückgegeben.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert der DWORD in niedriger Reihenfolge der tatsächlichen Anzahl von Bytes des Datenträgerspeichers, die zum Speichern der angegebenen Datei verwendet wird, und wenn lpFileSizeHigh nicht NULL ist, fügt die Funktion die hohe DWORD-Reihenfolge dieses tatsächlichen Werts in das DWORD ein, auf das dieser Parameter verweist. Dies ist die komprimierte Dateigröße für komprimierte Dateien, die tatsächliche Dateigröße für nicht komprimierte Dateien.

Wenn die Funktion fehlschlägt und lpFileSizeHighNULL ist, wird der Rückgabewert INVALID_FILE_SIZE. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Wenn der Rückgabewert INVALID_FILE_SIZE ist und lpFileSizeHigh nicht NULL ist, muss eine Anwendung GetLastError aufrufen, um festzustellen, ob die Funktion erfolgreich (Wert ist NO_ERROR) oder fehlgeschlagen ist (wert ist nicht NO_ERROR).

Hinweise

Eine Anwendung kann ermitteln, ob ein Volume komprimiert wird, indem Sie GetVolumeInformation aufrufen und dann die status des FS_VOL_IS_COMPRESSED Flags im DWORD-Wert überprüfen, auf den der lpFileSystemFlags-Parameter dieser Funktion verweist.

Wenn sich die Datei nicht auf einem Volume befindet, das Komprimierungs- oder Sparsedateien unterstützt, oder wenn die Datei nicht komprimiert oder eine Sparsedatei ist, entspricht der abgerufene Wert der tatsächlichen Dateigröße, dem Wert, der von einem Aufruf von GetFileSize zurückgegeben wird.

Symbolische Links: Wenn der Pfad auf einen symbolischen Link verweist, gibt die Funktion die Dateigröße des Ziels zurück.

Unter Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.

Technologie Unterstützt
SMB 3.0-Protokoll (Server Message Block) No
SMB 3.0 Transparent Failover (TFO) No
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) No
Dateisystem mit freigegebenen Clustervolumes (CsvFS) No
Robustes Dateisystem (Resilient File System, ReFS) No
 

SMB 3.0 unterstützt TxF nicht.

Hinweis

Der winbase.h-Header definiert GetCompressedFileSizeTransacted 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 Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Komprimierung und Dekomprimierung von Dateien

Dateiverwaltungsfunktionen

GetFileSize

GetVolumeInformation

Symbolische Links

Transaktionsverwaltung