GetFileAttributesTransactedA-Funktion (winbase.h)
[Microsoft empfiehlt Entwicklern dringend, alternative Mittel zu verwenden, um die Anforderungen Ihrer Anwendung zu erfüllen. 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 Transaktions-NTFS.]
Ruft Dateisystemattribute für eine angegebene Datei oder ein angegebenes Verzeichnis als transaktionierten Vorgang ab.
Syntax
BOOL GetFileAttributesTransactedA(
[in] LPCSTR lpFileName,
[in] GET_FILEEX_INFO_LEVELS fInfoLevelId,
[out] LPVOID lpFileInformation,
[in] HANDLE hTransaction
);
Parameter
[in] lpFileName
Der Name der Datei oder des Verzeichnisses.
Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um diesen Grenzwert auf 32.767 Breitzeichen zu erweitern, stellen Sie dem Pfad "\\?\" voran. Weitere Informationen finden Sie unter Benennen von Dateien, Pfaden und Namespaces.
Tipp
Ab Windows 10 Version 1607 können Sie die MAX_PATH-Einschränkung aufheben, ohne "\\?\" vorab ausstehen zu müssen. Ausführliche Informationen finden Sie im Abschnitt "Maximale Längenbeschränkung für Pfade" unter Benennen von Dateien, Pfaden und Namespaces .
Die Datei oder das Verzeichnis muss sich auf dem lokalen Computer befinden. Andernfalls schlägt die Funktion fehl, und der letzte Fehlercode ist auf ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE festgelegt.
[in] fInfoLevelId
Die Ebene der abzurufenden Attributinformationen.
Dieser Parameter kann der folgende Wert aus der GET_FILEEX_INFO_LEVELS-Enumeration sein.
Wert | Bedeutung |
---|---|
|
Der lpFileInformation-Parameter ist eine WIN32_FILE_ATTRIBUTE_DATA-Struktur . |
[out] lpFileInformation
Ein Zeiger auf einen Puffer, der die Attributinformationen empfängt.
Der Typ der Attributinformationen, die in diesem Puffer gespeichert werden, wird durch den Wert von fInfoLevelId bestimmt. Wenn der fInfoLevelId-ParameterGetFileExInfoStandard ist, verweist dieser Parameter auf eine WIN32_FILE_ATTRIBUTE_DATA-Struktur .
[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 ungleich Null.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null (0). Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Bemerkungen
Wenn GetFileAttributesTransacted für ein Verzeichnis aufgerufen wird, bei dem es sich um einen eingebundenen Ordner handelt, werden die Attribute des Verzeichnisses zurückgegeben, nicht die des Stammverzeichnisses auf dem Volume, das der bereitgestellte Ordner dem Verzeichnis zuordnet. Um die Dateiattribute des zugeordneten Volumes abzurufen, rufen Sie GetVolumeNameForVolumeMountPoint auf, um den Namen des zugeordneten Volumes abzurufen. Verwenden Sie dann den resultierenden Namen in einem Aufruf von GetFileAttributesTransacted. Die Ergebnisse sind die Attribute des Stammverzeichnisses auf dem zugeordneten Volume.
In Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.
Technologie | Unterstützt |
---|---|
Server Message Block (SMB) 3.0-Protokoll | Nein |
SMB 3.0 Transparent Failover (TFO) | Nein |
SMB 3.0 mit Dateifreigaben für horizontales Skalieren (SO) | Nein |
Freigegebenes Clustervolume-Dateisystem (CsvFS) | Nein |
Robustes Dateisystem (Resilient File System, ReFS) | Nein |
SMB 3.0 unterstützt TxF nicht.
Symbolische Links: Wenn der Pfad auf einen symbolischen Link zeigt, gibt die Funktion Attribute für den symbolischen Link zurück.
Transaktionierte Vorgänge
Wenn eine Datei zur Änderung in einer Transaktion geöffnet ist, kann kein anderer Thread die Datei zur Änderung öffnen, bis ein Commit für die Transaktion ausgeführt wird. Umgekehrt kann, wenn eine Datei außerhalb einer Transaktion zur Änderung geöffnet ist, kein transaktionsbasierter Thread die Datei zur Änderung öffnen, bis das nicht transaktionierte Handle geschlossen wird. Wenn ein nicht transaktioniertes Thread ein Handle zum Ändern einer Datei geöffnet hat, schlägt ein Aufruf von GetFileAttributesTransacted für diese Datei mit einem ERROR_TRANSACTIONAL_CONFLICT Fehler fehl.Hinweis
Der winbase.h-Header definiert GetFileAttributesTransacted 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
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winbase.h (Windows.h einschließen) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |