CreateDirectoryTransactedW-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.]
Hiermit wird ein neues Verzeichnis als transaktiver Vorgang mit den Attributen eines angegebenen Vorlagenverzeichnisses erstellt. Wenn das zugrunde liegende Dateisystem die Sicherheit für Dateien und Verzeichnisse unterstützt, wendet die Funktion einen angegebenen Sicherheitsdeskriptor auf das neue Verzeichnis an. Das neue Verzeichnis behält die anderen Attribute des angegebenen Vorlagenverzeichnisses bei.
Syntax
BOOL CreateDirectoryTransactedW(
[in, optional] LPCWSTR lpTemplateDirectory,
[in] LPCWSTR lpNewDirectory,
[in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes,
[in] HANDLE hTransaction
);
Parameter
[in, optional] lpTemplateDirectory
Der Pfad des Verzeichnisses, das beim Erstellen des neuen Verzeichnisses als Vorlage verwendet werden soll. Dieser Parameter kann NULL sein.
Das Verzeichnis muss sich auf dem lokalen Computer befinden. andernfalls schlägt die Funktion fehl, und der letzte Fehlercode wird auf ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE festgelegt.
Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um dieses Limit auf 32.767 breite Zeichen zu erweitern, müssen Sie dem Pfad "\\?\" voranstellen. 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 entfernen, ohne "\\?\" vorauszustellen. Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbegrenzung" unter Benennung von Dateien, Pfaden und Namespaces .
[in] lpNewDirectory
Der Pfad des zu erstellenden Verzeichnisses.
Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um dieses Limit auf 32.767 breite Zeichen zu erweitern, müssen Sie dem Pfad "\\?\" voranstellen. 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 entfernen, ohne "\\?\" vorauszustellen. Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbegrenzung" unter Benennung von Dateien, Pfaden und Namespaces .
[in, optional] lpSecurityAttributes
Ein Zeiger auf eine SECURITY_ATTRIBUTES-Struktur . Das lpSecurityDescriptor-Element der Struktur gibt einen Sicherheitsdeskriptor für das neue Verzeichnis an.
Wenn lpSecurityAttributesNULL ist, erhält das Verzeichnis eine Standardsicherheitsbeschreibung. Die Zugriffssteuerungslisten (Access Control Lists, ACL) im Standardsicherheitsdeskriptor für ein Verzeichnis werden vom übergeordneten Verzeichnis geerbt.
Das Zieldateisystem muss die Sicherheit von Dateien und Verzeichnissen unterstützen, damit dieser Parameter eine Wirkung hat. Dies wird angezeigt, wenn GetVolumeInformationFS_PERSISTENT_ACLS zurückgibt.
[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 0 (null). Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. Zu den möglichen Fehlern zählen die folgenden.
Rückgabecode | Beschreibung |
---|---|
|
Das angegebene Verzeichnis ist bereits vorhanden. |
|
Sie können kein untergeordnetes Verzeichnis mit einem übergeordneten Verzeichnis erstellen, in dem die Verschlüsselung deaktiviert ist. |
|
Mindestens ein Zwischenverzeichnis ist nicht vorhanden. Diese Funktion erstellt nur das endgültige Verzeichnis im Pfad. |
Hinweise
Mit der Funktion CreateDirectoryTransacted können Sie Verzeichnisse erstellen, die Streaminformationen von anderen Verzeichnissen erben. Diese Funktion ist beispielsweise nützlich, wenn Sie Macintosh-Verzeichnisse verwenden, die über einen Ressourcenstrom verfügen, der erforderlich ist, um Verzeichnisinhalte ordnungsgemäß als Attribut zu identifizieren.
Einige Dateisysteme, z. B. das NTFS-Dateisystem, unterstützen die Komprimierung oder Verschlüsselung für einzelne Dateien und Verzeichnisse. Auf Volumes, die für ein solches Dateisystem formatiert sind, erbt ein neues Verzeichnis die Komprimierungs- und Verschlüsselungsattribute des übergeordneten Verzeichnisses.
Diese Funktion schlägt mit ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION fehl, wenn Sie versuchen, ein untergeordnetes Verzeichnis mit einem übergeordneten Verzeichnis zu erstellen, für das die Verschlüsselung deaktiviert ist.
Sie können ein Handle für ein Verzeichnis abrufen, indem Sie die CreateFileTransacted-Funktion mit dem FILE_FLAG_BACKUP_SEMANTICS-Flags aufrufen.
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 CreateDirectoryTransacted 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 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
Erstellen und Löschen von Verzeichnissen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für