CreateFile2-Funktion (fileapi.h)
Erstellt oder öffnet eine Datei oder ein E/A-Gerät. Die am häufigsten verwendeten E/A-Geräte sind wie folgt: Datei, Dateidatenstrom, Verzeichnis, physischer Datenträger, Volume, Konsolenpuffer, Bandlaufwerk, Kommunikationsressource, Mailslot und Pipe. Die Funktion gibt ein Handle zurück, mit dem je nach Datei oder Gerät und den angegebenen Flags und Attributen für verschiedene E/A-Typen auf die Datei oder das Gerät zugegriffen werden kann.
Bei Aufruf aus einer Windows Store-App wird CreateFile2- vereinfacht. Sie können nur Dateien oder Verzeichnisse innerhalb der ApplicationData.LocalFolder oder Package.InstalledLocation Verzeichnisse öffnen. Sie können keine benannten Rohre oder Mailslots öffnen oder verschlüsselte Dateien erstellen (FILE_ATTRIBUTE_ENCRYPTED).
Syntax
HANDLE CreateFile2(
[in] LPCWSTR lpFileName,
[in] DWORD dwDesiredAccess,
[in] DWORD dwShareMode,
[in] DWORD dwCreationDisposition,
[in, optional] LPCREATEFILE2_EXTENDED_PARAMETERS pCreateExParams
);
Parameter
[in] lpFileName
Der Name der zu erstellenden oder geöffneten Datei oder des Geräts.
Informationen zu speziellen Gerätenamen finden Sie unter Definieren eines MS-DOS Gerätenamens.
Um einen Dateidatenstrom zu erstellen, geben Sie den Namen der Datei, einen Doppelpunkt und dann den Namen des Datenstroms an. Weitere Informationen finden Sie unter File Streams.
[in] dwDesiredAccess
Der angeforderte Zugriff auf die Datei oder das Gerät, die als Lese-, Schreib-, Schreib- oder keine Null zusammengefasst werden kann).
Die am häufigsten verwendeten Werte sind GENERIC_READ, GENERIC_WRITEoder beide (GENERIC_READ | GENERIC_WRITE
). Weitere Informationen finden Sie unter Generic Access Rights, File Security and Access Rights, File Access Rights Constantsund ACCESS_MASK.
Wenn dieser Parameter null ist, kann die Anwendung bestimmte Metadaten wie Datei-, Verzeichnis- oder Geräteattribute abfragen, ohne auf diese Datei oder das Gerät zuzugreifen, auch wenn GENERIC_READ Zugriff verweigert wurde.
Sie können keinen Zugriffsmodus anfordern, der mit dem Freigabemodus in Konflikt steht, der durch den dwShareMode Parameter in einer geöffneten Anforderung angegeben wird, die bereits über ein geöffnetes Handle verfügt.
Weitere Informationen finden Sie im Abschnitt "Hinweise" dieses Themas und Erstellen und Öffnen von Dateien.
[in] dwShareMode
Der angeforderte Freigabemodus der Datei oder des Geräts, der gelesen, geschrieben werden kann, beides, löschen, all diese oder keine (siehe die folgende Tabelle). Zugriffsanforderungen an Attribute oder erweiterte Attribute sind von diesem Flag nicht betroffen.
Wenn dieser Parameter null ist und CreateFile2 erfolgreich ist, kann die Datei oder das Gerät nicht freigegeben werden und erst wieder geöffnet werden, wenn das Handle für die Datei oder das Gerät geschlossen wird. Weitere Informationen finden Sie im Abschnitt "Hinweise".
Sie können keinen Freigabemodus anfordern, der mit dem Zugriffsmodus in Konflikt steht, der in einer vorhandenen Anforderung mit einem offenen Handle angegeben ist. CreateFile2- fehlschlägt, und die GetLastError--Funktion würde ERROR_SHARING_VIOLATIONzurückgeben.
Um eine Datei oder ein Gerät freizugeben, während ein anderer Prozess die Datei oder das Gerät geöffnet hat, verwenden Sie eine kompatible Kombination aus einem oder mehreren der folgenden Werte. Weitere Informationen zu gültigen Kombinationen dieses Parameters mit dem parameter dwDesiredAccess finden Sie unter Creating and Opening Files.
[in] dwCreationDisposition
Eine Aktion, die auf einer Datei oder einem Gerät ausgeführt werden soll, die vorhanden ist oder nicht vorhanden ist.
Für andere Geräte als Dateien wird dieser Parameter in der Regel auf OPEN_EXISTINGfestgelegt.
Weitere Informationen finden Sie im Abschnitt "Hinweise".
Dieser Parameter muss eines der folgenden Werte sein, die nicht kombiniert werden können:
[in, optional] pCreateExParams
Zeiger auf eine optionale CREATEFILE2_EXTENDED_PARAMETERS Struktur.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein geöffnetes Handle für die angegebene Datei, das Gerät, das benannte Pipe oder den E-Mail-Steckplatz.
Wenn die Funktion fehlschlägt, wird der Rückgabewert INVALID_HANDLE_VALUE. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Um eine Anwendung zu kompilieren, die die CreateFile2--Funktion verwendet, definieren Sie das _WIN32_WINNT Makro als 0x0602 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.
CreateFile2- unterstützt die Dateiinteraktion und die meisten anderen Typen von E/A-Geräten und Mechanismen, die Windows-Entwicklern zur Verfügung stehen. In diesem Abschnitt wird versucht, die unterschiedlichen Probleme abzudecken, die Entwickler bei der Verwendung von CreateFile2- in verschiedenen Kontexten und mit verschiedenen E/A-Typen haben können. Der Text versucht, das Wort Datei zu verwenden, nur dann, wenn er sich speziell auf Daten bezieht, die in einer tatsächlichen Datei in einem Dateisystem gespeichert sind. Einige Verwendungen von Datei verweisen jedoch möglicherweise allgemeiner auf ein E/A-Objekt, das dateiähnliche Mechanismen unterstützt. Diese liberale Verwendung des Begriffs Datei ist aufgrund der zuvor erwähnten historischen Gründe besonders in Konstantennamen und Parameternamen verbreitet.
Wenn eine Anwendung mit dem von CreateFile2zurückgegebenen Objekthandle fertig ist, verwenden Sie die CloseHandle--Funktion, um das Handle zu schließen. Dies gibt nicht nur Systemressourcen frei, sondern kann einen größeren Einfluss auf Dinge wie das Freigeben der Datei oder des Geräts und das Commit von Daten auf dem Datenträger haben. Einzelheiten werden in diesem Thema entsprechend aufgeführt.
Einige Dateisysteme, z. B. das NTFS-Dateisystem, unterstützen die Komprimierung oder Verschlüsselung für einzelne Dateien und Verzeichnisse. Auf Volumes, die über ein bereitgestelltes Dateisystem mit dieser Unterstützung verfügen, erbt eine neue Datei die Komprimierungs- und Verschlüsselungsattribute des Verzeichnisses.
Sie können CreateFile2- nicht verwenden, um Komprimierung, Dekomprimierung oder Entschlüsselung in einer Datei oder einem Verzeichnis zu steuern. Weitere Informationen finden Sie unter Erstellen und Öffnen von Dateien, Dateikomprimierung und Dekomprimierungund Dateiverschlüsselung.
Wenn das lpSecurityAttributes Member der CREATEFILE2_EXTENDED_PARAMETERS Struktur, die in der pCreateExParams Parameter übergeben wird, NULL-ist, kann das von CreateFile2 zurückgegebene Handle nicht von untergeordneten Prozessen geerbt werden, die Ihre Anwendung erstellen kann. Die folgenden Informationen zu diesem Mitglied gelten ebenfalls:
- Wenn die bInheritHandle Membervariable nicht FALSE-ist, bei dem es sich um einen wert ungleich Null handelt, kann das Handle geerbt werden. Daher ist es wichtig, dass dieses Strukturelement ordnungsgemäß initialisiert wird, um false zu
, wenn Sie nicht beabsichtigen, das Handle vererbbar zu sein. - Die Zugriffssteuerungslisten (Access Control Lists, ACL) im Standardsicherheitsdeskriptor für eine Datei oder ein Verzeichnis werden vom übergeordneten Verzeichnis geerbt.
- Das Zieldateisystem muss die Sicherheit von Dateien und Verzeichnissen für das lpSecurityDescriptor Member unterstützen, um auswirkungen darauf zu haben, was mithilfe von GetVolumeInformationbestimmt werden kann.
Technologie | Abgestützt |
---|---|
Server Message Block (SMB) 3.0-Protokoll | Ja |
SMB 3.0 Transparent Failover (TFO) | Nein |
SMB 3.0 mit Skalierungsdateifreigaben (SO) | Nein |
Freigegebenes Clustervolumedateisystem (CsvFS) | Ja |
Resilient File System (ReFS) | Ja |
Verhalten symbolischer Verknüpfungen
Wenn der Aufruf dieser Funktion eine Datei erstellt, gibt es keine Verhaltensänderung. Beachten Sie außerdem die folgenden Informationen zu FILE_FLAG_OPEN_REPARSE_POINT Flag für das dwFileFlags- Mitglied der CREATEFILE2_EXTENDED_PARAMETERS Struktur, die im pCreateExParams Parameter übergeben wird:-
Wenn FILE_FLAG_OPEN_REPARSE_POINT angegeben ist:
- Wenn eine vorhandene Datei geöffnet wird und es sich um eine symbolische Verknüpfung handelt, ist das zurückgegebene Handle ein Handle für die symbolische Verknüpfung.
- Wenn TRUNCATE_EXISTING oder FILE_FLAG_DELETE_ON_CLOSE angegeben werden, handelt es sich bei der betroffenen Datei um eine symbolische Verknüpfung.
-
Wenn FILE_FLAG_OPEN_REPARSE_POINT nicht angegeben ist:
- Wenn eine vorhandene Datei geöffnet wird und es sich um eine symbolische Verknüpfung handelt, handelt es sich bei dem zurückgegebenen Handle um ein Handle für das Ziel.
- Wenn CREATE_ALWAYS, TRUNCATE_EXISTINGoder FILE_FLAG_DELETE_ON_CLOSE angegeben werden, ist die betroffene Datei das Ziel.
Dateien
Wenn Sie eine Datei umbenennen oder löschen und diese dann kurz danach wiederherstellen, durchsucht das System den Cache nach Dateiinformationen, die wiederhergestellt werden sollen. Zwischengespeicherte Informationen umfassen das Kurz-/Lange-Namenspaar und die Erstellungszeit.Wenn Sie CreateFile2- für eine Datei aufrufen, die aufgrund eines vorherigen Aufrufs von DeleteFile-aussteht, schlägt die Funktion fehl. Das Betriebssystem verzögert das Löschen von Dateien, bis alle Handles für die Datei geschlossen werden. GetLastError- gibt ERROR_ACCESS_DENIEDzurück.
Der dwDesiredAccess Parameter kann null sein, sodass die Anwendung Dateiattribute abfragen kann, ohne auf die Datei zuzugreifen, wenn die Anwendung mit angemessenen Sicherheitseinstellungen ausgeführt wird. Dies ist nützlich, um das Vorhandensein einer Datei zu testen, ohne sie für Lese- und/oder Schreibzugriff zu öffnen oder andere Statistiken zu der Datei oder dem Verzeichnis zu erhalten. Siehe Abrufen und Festlegen von Dateiinformationen und GetFileInformationByHandle-.
Wenn eine Anwendung eine Datei in einem Netzwerk erstellt, empfiehlt es sich, GENERIC_READ | GENERIC_WRITE
für dwDesiredAccess- zu verwenden, als GENERIC_WRITE allein zu verwenden. Der resultierende Code ist schneller, da der Umleitungsmodul den Cache-Manager verwenden und weniger SMBs mit mehr Daten senden kann.
Diese Kombination vermeidet auch ein Problem, bei dem das Schreiben in eine Datei in einem Netzwerk gelegentlich ERROR_ACCESS_DENIEDzurückgeben kann.
Weitere Informationen finden Sie unter Erstellen und Öffnen von Dateien.
Dateistreams
Auf NTFS-Dateisystemen können Sie CreateFile2- verwenden, um separate Datenströme in einer Datei zu erstellen. Weitere Informationen finden Sie unter File Streams.Verzeichnisse
Eine Anwendung kann mit CreateFile2-kein Verzeichnis erstellen. Daher ist nur der OPEN_EXISTING Wert für dwCreationDisposition für diesen Anwendungsfall gültig. Zum Erstellen eines Verzeichnisses muss die Anwendung CreateDirectory oder CreateDirectoryEx-aufrufen.Um ein Verzeichnis mit CreateFile2zu öffnen, geben Sie das FILE_FLAG_BACKUP_SEMANTICS Flag als Teil dwFileFlags Member der CREATEFILE2_EXTENDED_PARAMETERS Struktur an, die im pCreateExParams Parameter übergeben wird. Geeignete Sicherheitsprüfungen gelten weiterhin, wenn dieses Kennzeichen ohne SE_BACKUP_NAME und SE_RESTORE_NAME Berechtigungen verwendet wird.
Wenn Sie CreateFile2- verwenden, um ein Verzeichnis während der Defragmentierung eines FAT- oder FAT32-Dateisystemvolumes zu öffnen, geben Sie nicht das MAXIMUM_ALLOWED Zugriffsrecht an. Der Zugriff auf das Verzeichnis wird verweigert, wenn dies erfolgt. Geben Sie stattdessen den GENERIC_READ Zugriffsrecht an.
Weitere Informationen finden Sie unter Informationen zur Verzeichnisverwaltung.
physische Datenträger und Volumes
Der direkte Zugriff auf den Datenträger oder auf ein Volume ist eingeschränkt.Sie können die CreateFile2--Funktion verwenden, um ein physisches Laufwerk oder ein Volume zu öffnen, das ein DASD-Handle (Direct Access Storage Device) zurückgibt, das mit der DeviceIoControl--Funktion verwendet werden kann. Auf diese Weise können Sie direkt auf den Datenträger oder das Volume zugreifen, z. B. Datenträgermetadaten wie die Partitionstabelle. Dieser Zugriffstyp macht jedoch auch das Laufwerk oder volume für potenzielle Datenverluste verfügbar, da ein falscher Schreibzugriff auf einen Datenträger mit diesem Mechanismus den Inhalt des Betriebssystems beeinträchtigen könnte. Um die Datenintegrität sicherzustellen, sollten Sie sich mit DeviceIoControl vertraut machen und wie sich andere APIs mit einem direkten Zugriffshandle anders verhalten als mit einem Dateisystemhandle.
Die folgenden Anforderungen müssen erfüllt sein, damit ein solcher Aufruf erfolgreich ist:
- Der Aufrufer muss über Administratorrechte verfügen. Weitere Informationen finden Sie unter Ausführen mit speziellen Rechten.
- Der parameter dwCreationDisposition muss das OPEN_EXISTING Flag aufweisen.
- Beim Öffnen eines Volume- oder Diskettendatenträgers muss der parameter dwShareMode das FILE_SHARE_WRITE Flag aufweisen.
Schnur | Bedeutung |
---|---|
"\\.\PhysicalDrive0" | Öffnet das erste physische Laufwerk. |
"\\.\PhysicalDrive2" | Öffnet das dritte physische Laufwerk. |
Um den physischen Laufwerkbezeichner für ein Volume abzurufen, öffnen Sie ein Handle für das Volume, und rufen Sie die DeviceIoControl--Funktion mit IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTSauf. Dieser Steuercode gibt die Datenträgernummer und den Offset für jedes Volume eines oder mehrere Ausmaße zurück. Ein Volume kann mehrere physische Datenträger umfassen.
Ein Beispiel zum Öffnen eines physischen Laufwerks finden Sie unter Calling DeviceIoControl.
Beim Öffnen eines Volume- oder Wechselmedienlaufwerks (z. B. eines Diskettenlaufwerks oder flash-Speicherfingersticks) sollte die lpFileName- Zeichenfolge die folgende Form aufweisen: "\\.\X:". Verwenden Sie keinen nachfolgenden umgekehrten Schrägstrich (\), der das Stammverzeichnis eines Laufwerks angibt. Die folgende Tabelle enthält einige Beispiele für Laufwerkszeichenfolgen.
Schnur | Bedeutung |
---|---|
"\\.\A:" | Öffnet Diskettenlaufwerk A. |
"\\.\C:" | Öffnet das Volume "C:". |
"\\.\C:\" | Öffnet das Dateisystem des C:-Volumes. |
Sie können ein Volume auch öffnen, indem Sie auf den Volumenamen verweisen. Weitere Informationen finden Sie unter Benennen eines Volumes.
Ein Volume enthält ein oder mehrere bereitgestellte Dateisysteme. Volume handles can be open as noncached at the discretion of the particular file system, even when the noncached option is not specified in CreateFile2. Sie sollten davon ausgehen, dass alle Microsoft-Dateisysteme Volumehandles als nicht zwischengespeichert öffnen. Die Einschränkungen für nicht zwischengespeicherte E/A für Dateien gelten auch für Volumes.
Ein Dateisystem erfordert möglicherweise eine Pufferausrichtung, obwohl die Daten nicht zwischengespeichert sind. Wenn die Option ohne Zwischenspeicherung beim Öffnen eines Volumes angegeben wird, wird die Pufferausrichtung unabhängig vom Dateisystem auf dem Volume erzwungen. Es wird für alle Dateisysteme empfohlen, die Volumehandles als nicht zwischengespeichert zu öffnen und die einschränkungen für nicht zwischengespeicherte E/A zu befolgen.
Änderungsgerät
Die IOCTL_CHANGER_* Steuercodes für DeviceIoControl ein Handle an ein Änderungsgerät akzeptieren. Verwenden Sie zum Öffnen eines Änderungsgeräts einen Dateinamen des folgenden Formulars: "\\.\Changerx", wobei x eine Zahl ist, die angibt, welches Gerät geöffnet werden soll, beginnend mit Null. Wenn Sie das Änderungsgerät in einer Anwendung öffnen möchten, die in C oder C++ geschrieben wurde, verwenden Sie den folgenden Dateinamen: "\\\\.\\Changer0".Bandlaufwerke
Sie können Bandlaufwerke mit einem Dateinamen des folgenden Formulars öffnen: "\\.\TAPEx" wobei x eine Zahl ist, die angibt, welches Laufwerk geöffnet werden soll, beginnend mit Bandlaufwerk Null. Wenn Sie das Bandlaufwerk null in einer Anwendung öffnen möchten, die in C oder C++ geschrieben wurde, verwenden Sie den folgenden Dateinamen: "\\\\.\TAPE0".Weitere Informationen finden Sie unter Sicherung.
Kommunikationsressourcen
Die CreateFile2--Funktion kann ein Handle für eine Kommunikationsressource erstellen, z. B. den seriellen Port COM1. Für Kommunikationsressourcen muss der parameter dwCreationDispositionOPEN_EXISTINGsein, der parameter dwShareMode muss null (exklusiver Zugriff) sein, und der hTemplateFile- Parameter muss NULLsein. Lese-, Schreib- oder Lese-/Schreibzugriff kann angegeben werden, und der Handle kann für überlappende E/A geöffnet werden.Um eine COM-Portnummer anzugeben, die größer als 9 ist, verwenden Sie die folgende Syntax: "\.\COM10". Diese Syntax funktioniert für alle Portnummern und Hardware, mit denen COM-Portnummern angegeben werden können.
Weitere Informationen zur Kommunikation finden Sie unter Communications.
Konsolen
Die CreateFile2--Funktion kann ein Handle für die Konsoleneingabe (CONIN$) erstellen. Wenn der Prozess durch Vererbung oder Duplizierung über ein offenes Handle verfügt, kann er auch einen Handle für den aktiven Bildschirmpuffer (CONOUT$) erstellen. Der Aufrufvorgang muss an eine geerbte Konsole oder eine angefügt werden, die von der AllocConsole-Funktion zugewiesen wurde. Legen Sie für Konsolenhandles die parameter CreateFile2 wie folgt fest.Parameter | Wert |
---|---|
lpFileName- |
Verwenden Sie den CONIN$-Wert, um die Konsoleneingabe anzugeben.
Verwenden Sie den CONOUT$-Wert, um die Konsolenausgabe anzugeben. CONIN$ erhält ein Handle für den Konsoleneingabepuffer, auch wenn das SetStdHandle--Funktion den Standardeingabepunkt umleitet. Verwenden Sie zum Abrufen des standardeingabehandles die GetStdHandle--Funktion. CONOUT$ ruft einen Handle zum aktiven Bildschirmpuffer ab, auch wenn SetStdHandle den Standardausgabehandle umleitet. Verwenden Sie zum Abrufen des standardausgabehandles GetStdHandle. |
dwDesiredAccess |
GENERIC_READ | GENERIC_WRITE wird bevorzugt, kann jedoch entweder den Zugriff einschränken.
|
dwShareMode- |
Geben Sie beim Öffnen von CONIN$FILE_SHARE_READan. Geben Sie beim Öffnen von CONOUT$FILE_SHARE_WRITEan.
Wenn der aufrufende Prozess die Konsole erbt oder ein untergeordneter Prozess auf die Konsole zugreifen kann, muss dieser Parameter |
dwCreationDisposition | Sie sollten OPEN_EXISTING angeben, wenn Sie CreateFile2- zum Öffnen der Konsole verwenden. |
Legen Sie die Elemente der CREATEFILE2_EXTENDED_PARAMETERS Struktur fest, die in der pCreateExParams Parameter wie folgt übergeben wird.
Angehörige | Wert |
---|---|
lpSecurityAttributes | Wenn die Konsole geerbt werden soll, muss das bInheritHandle- Mitglied der SECURITY_ATTRIBUTES-Struktur TRUE-sein. |
dwFileAttributes-
dwFileFlags- dwSecurityQosFlags hTemplateFile- |
Ignoriert. |
In der folgenden Tabelle sind verschiedene Einstellungen dwDesiredAccess und lpFileNameaufgeführt.
lpFileName- | dwDesiredAccess | Ergebnis |
---|---|---|
"CON" | GENERIC_READ | Öffnet die Konsole für Eingaben. |
"CON" | GENERIC_WRITE | Öffnet die Konsole für die Ausgabe. |
"CON" | GENERIC_READ | GENERIC_WRITE |
Bewirkt, dass CreateFile2- fehlschlägt; GetLastError- gibt ERROR_FILE_NOT_FOUNDzurück. |
Mailslots
Wenn CreateFile2 das Clientende eines Maillots öffnet, gibt die Funktion INVALID_HANDLE_VALUE zurück, wenn der Maillot-Client versucht, einen lokalen Maillot zu öffnen, bevor der Maillot-Server es mit der CreateMailSlot-Funktion erstellt hat.Weitere Informationen finden Sie unter Mailslots.
Rohre
Wenn CreateFile2 das Clientende einer benannten Pipe öffnet, verwendet die Funktion eine Instanz der benannten Pipe, die sich im Überwachungszustand befindet. Der Öffnungsprozess kann das Handle beliebig oft duplizieren, aber nach dem Öffnen kann die benannte Pipeinstanz nicht von einem anderen Client geöffnet werden. Der Zugriff, der beim Öffnen einer Pipe angegeben wird, muss mit dem Zugriff kompatibel sein, der im dwOpenMode Parameter der CreateNamedPipe--Funktion angegeben ist.Wenn die CreateNamedPipe--Funktion vor diesem Vorgang nicht erfolgreich auf dem Server aufgerufen wurde, ist keine Pipe vorhanden, und CreateFile2- mit ERROR_FILE_NOT_FOUNDfehlschlägt.
Wenn mindestens eine aktive Pipeinstanz vorhanden ist, aber keine verfügbaren Listenerpipelinen auf dem Server vorhanden sind, was bedeutet, dass alle Pipeinstanzen derzeit verbunden sind, schlägt CreateFile2 mit ERROR_PIPE_BUSYfehl.
Weitere Informationen finden Sie unter Pipes.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8 [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2012 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | fileapi.h (include Windows.h) |
Library | Kernel32.lib |
DLL- | Kernel32.dll |
Siehe auch
Informationen zur Verzeichnisverwaltung
Informationen zum Volumeverwaltungs-
Erstellen, Löschen und Verwalten von Dateien
Geräteeingabe- und Ausgabesteuerung (IOCTL)
Dateikomprimierung und Dekomprimierung
Dateisicherheit und Zugriffsberechtigungen
Funktionen
Abrufen und Festlegen von Dateiinformationen
Übersichtsthemen