Freigeben über


FSCTL_MARK_HANDLE IOCTL (winioctl.h)

Kennzeichnet eine angegebene Datei oder ein angegebenes Verzeichnis und den zugehörigen Änderungsjournaleintrag mit Informationen zu Änderungen an dieser Datei oder diesem Verzeichnis.

Rufen Sie zum Ausführen dieses Vorgangs die DeviceIoControl-Funktion mit den folgenden Parametern auf.

BOOL DeviceIoControl(
  (HANDLE) hDevice,             // handle to file or directory
  FSCTL_MARK_HANDLE,            // dwIoControlCode
  (LPVOID)lpInBuffer,           // input buffer
  (DWORD)nInBufferSize,         // size of input buffer
  NULL,                         // lpOutBuffer
  0,                            // nOutBufferSize
  (LPDWORD) lpBytesReturned,    // number of bytes returned
  (LPOVERLAPPED) lpOverlapped   // OVERLAPPED structure
);

Hinweise

Die Auswirkungen von überlappenden E/A-Vorgängen auf diesen Vorgang finden Sie im Abschnitt Hinweise des Themas DeviceIoControl .

FSCTL_MARK_HANDLE ist der einzige Änderungsjournalvorgang, der für eine einzelne Datei oder ein einzelnes Verzeichnis ausgeführt wird. Dies wirkt sich nicht auf alles aus, was der Benutzer mit dem Element tun kann. Stattdessen fügt sie Der Datei oder dem Verzeichnis Informationen dazu hinzu, wie das Betriebssystem das Element geändert hat, oder fügt dem Element einen privaten Datenstrom hinzu.

Wenn Änderungen an der Datei oder dem Verzeichnis vorgenommen werden, werden die mit FSCTL_MARK_HANDLE hinzugefügten Informationen auch in den USN-Eintrag kopiert, der für die Datei oder das Verzeichnis erstellt wurde. Beachten Sie, dass diese beiden Vorgänge unabhängig voneinander erfolgen können. Beispielsweise ist es nicht erforderlich, dass ein USN-Eintrag vorhanden ist, um eine Datei als nicht defragmentiert zu markieren, und es ist nicht erforderlich, eine Datei oder ein Verzeichnis zu markieren, um den Inhalt des entsprechenden USN-Eintrags zu aktualisieren. Ausführliche Informationen zu den Informationen, mit denen FSCTL_MARK_HANDLE ein Element markieren können (weitere Informationen finden Sie unter MARK_HANDLE_INFO ).

Es ist kein Fehler, FSCTL_MARK_HANDLE zu verwenden, während das Änderungsjournal des Volumes gelöscht wird oder inaktiv ist. Die entsprechenden Informationen werden unabhängig vom Status des Änderungsjournals auf die Datei oder das Verzeichnis angewendet, solange das Änderungsjournal vorhanden ist.

Beachten Sie, dass die Zeitstempel für eine Remotedatei möglicherweise nicht ordnungsgemäß aktualisiert werden. Um konsistente Ergebnisse zu gewährleisten, verwenden Sie ungepufferte E/A-Vorgänge.

Das Volume muss NTFS sein.

In Windows 8 und Windows Server 2012 wird dieser Code 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) Ja

CsvFs geben immer USN_SOURCE_REPLICATION_MANAGEMENT und MARK_HANDLE_PROTECT_CLUSTERS für die Dateien aus, die für direkte E/A-Vorgänge geeignet sind.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile winioctl.h (windows.h einschließen)

Weitere Informationen