Freigeben über


GetCompressedFileSizeTransactedA-Funktion (winbase.h)

[Microsoft empfiehlt Entwicklern dringend, alternative Mittel zu nutzen, um die Anforderungen Ihrer Anwendung zu erreichen. Viele Szenarien, für die TxF entwickelt wurde, können durch einfachere und leichter verfügbare 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 Transactional NTFS.]

Ruft die tatsächliche Anzahl der Bytes des Datenträgerspeichers ab, der zum Speichern einer angegebenen Datei als Transaktionsvorgang verwendet wird. Wenn sich die Datei auf einem Volume befindet, das komprimiert 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 sparse Dateien unterstützt und die Datei eine sparse Datei ist, ist der abgerufene Wert die geringe Größ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 eingesehten Gerät an, z. B. eine Pipe oder ein 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_REMOTEfestgelegt.

[out, optional] lpFileSizeHigh

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

Dieser Parameter kann NULL- werden, wenn die hohe Reihenfolge DWORD- der komprimierten Dateigröße nicht erforderlich ist. Dateien mit weniger als 4 Gigabyte Größe benötigen nicht die hohe Reihenfolge 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 die niedrige Reihenfolge DWORD- der tatsächlichen Anzahl von Bytes des Datenträgerspeichers, der zum Speichern der angegebenen Datei verwendet wird, und wenn lpFileSizeHigh nichtNULL-ist, platziert die Funktion die hohe Reihenfolge DWORD- dieses tatsächlichen Werts in die DWORD-, auf die 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. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Wenn der Rückgabewert INVALID_FILE_SIZE ist und lpFileSizeHigh nichtNULL-ist, muss eine Anwendung GetLastError- aufrufen, um zu bestimmen, ob die Funktion erfolgreich war (Wert ist NO_ERROR) oder fehlgeschlagen (Wert ist nicht NO_ERROR).

Bemerkungen

Eine Anwendung kann bestimmen, ob ein Volume komprimiert wird, indem GetVolumeInformationaufgerufen wird, und dann den Status des FS_VOL_IS_COMPRESSED Flags im DWORD--Wert überprüft wird, 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 sparse Datei ist, ist der abgerufene Wert die tatsächliche Dateigröße, identisch mit dem Wert, der von einem Aufruf von GetFileSizezurückgegeben wird.

Symbolische Verknüpfungen: Wenn der Pfad auf eine symbolische Verknüpfung zeigt, gibt die Funktion die Dateigröße des Ziels zurück.

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

Technologie Abgestützt
Server Message Block (SMB) 3.0-Protokoll Nein
SMB 3.0 Transparent Failover (TFO) Nein
SMB 3.0 mit Skalierungsdateifreigaben (SO) Nein
Freigegebenes Clustervolumedateisystem (CsvFS) Nein
Resilient File System (ReFS) Nein
 

SMB 3.0 unterstützt TxF nicht.

Anmerkung

Der winbase.h-Header definiert GetCompressedFileSizeTransacted 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 Vista [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2008 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- winbase.h (enthalten Windows.h)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

Dateikomprimierung und Dekomprimierung

Dateiverwaltungsfunktionen

GetFileSize-

GetVolumeInformation-

symbolische Verknüpfungen

Transaktionsverwaltung