Freigeben über


FSCTL_DELETE_USN_JOURNAL IOCTL (winioctl.h)

Löscht das Änderungsjournal für die Aktualisierungssequenznummer (USN) auf einem Volume oder wartet auf die Benachrichtigung über das Löschen des Änderungsjournals.

C++
BOOL 
WINAPI 
DeviceIoControl( (HANDLE) hDevice,              // handle to volume
                 FSCTL_DELETE_USN_JOURNAL,      // dwIoControlCode(LPVOID) lpInBuffer,           // input buffer
                 (DWORD) nInBufferSize,         // size of input buffer
                 NULL,                          // lpOutBuffer0,                             // nOutBufferSize(LPDWORD) lpBytesReturned,     // number of bytes returned
                 (LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure

Bemerkungen

Die Auswirkungen überlappender E/A für diesen Vorgang finden Sie im Abschnitt "Hinweise" des Themas DeviceIoControl.

Sie können FSCTL_DELETE_USN_JOURNAL verwenden, um ein Änderungsjournal zu löschen. Das NTFS-Dateisystem startet einen Löschvorgang und kehrt sofort zum aufrufenden Prozess zurück, es sei denn, das USN_DELETE_FLAG_NOTIFY Flag ist im DeleteFlags Member von DELETE_USN_JOURNAL_DATAfestgelegt.

Wenn die kennzeichnungen USN_DELETE_FLAG_NOTIFY und USN_DELETE_FLAG_DELETE festgelegt sind, beginnt ein Aufruf von FSCTL_DELETE_USN_JOURNAL mit dem Löschvorgang. Anschließend blockiert der Aufruf entweder den aufrufenden Thread und wartet auf den Löschvorgang (bei einem synchronen oder nicht überlappenden Aufruf), oder richtet die Ereignisbenachrichtigung mithilfe eines E/A-Vervollständigungsports oder eines anderen Mechanismus ein und gibt zurück (bei einem asynchronen oder überlappenden Aufruf).

Sie können auch FSCTL_DELETE_USN_JOURNAL verwenden, um Benachrichtigungen zu erhalten, dass ein Löschvorgang im Änderungsjournal abgeschlossen ist, indem Sie nur USN_DELETE_FLAG_NOTIFYfestlegen. In diesem Fall wartet der FSCTL_DELETE_USN_JOURNAL Vorgang entweder, bis der Löschvorgang abgeschlossen ist, bevor er zurückgegeben wird (bei einem synchronen oder nicht überlappenden Aufruf) oder mithilfe eines E/A-Vervollständigungsports oder eines anderen Mechanismus (bei einem asynchronen oder überlappenden Aufruf) ereignisbenachrichtigungen ein.

Der Löschvorgang, für den eine Anwendung eine Benachrichtigung empfängt, wurde möglicherweise vom aktuellen Prozess oder einem anderen Prozess initiiert. Wenn z. B. eine Anwendung gestartet wird, kann sie FSCTL_DELETE_USN_JOURNAL verwenden, um zu ermitteln, ob ein von einem anderen Prozess gestarteter Löschvorgang ausgeführt wird und ob dies der Vorgang ist.

Das vollständige Löschen eines Änderungsjournals erfordert eine Überprüfung des Volumes, in dem sich das Änderungsjournal befindet. Dies kann eine lange Zeit für ein Volume mit vielen Dateien dauern. Der Vorgang wird auch bei Systemneustarts weiterhin abgeschlossen. Versucht, das Änderungsjournal zu erstellen, zu ändern, zu löschen oder abzufragen, während der Löschvorgang ausgeführt wird, schlägt fehl und gibt den Fehlercode ERROR_JOURNAL_DELETE_IN_PROGRESSzurück.

Der FSCTL_DELETE_USN_JOURNAL-Vorgang hat erhebliche Leistungskosten, daher sollte er sparsam verwendet werden. Ein Administrator sollte ein Journal löschen, wenn der aktuelle USN-Wert dem maximal möglichen USN-Wert nähert.

Weitere Informationen finden Sie unter Erstellen, Ändern und Löschen eines Änderungsjournals.

Rufen Sie zum Abrufen eines Handles zu einem Volume CreateFile- auf, wobei der parameter lpFileName auf eine Zeichenfolge in der folgenden Form festgelegt ist:

\\.\X-:

In der vorherigen Zeichenfolge ist X- der Buchstabe, der das Laufwerk angibt, auf dem das Volume angezeigt wird. Das Volume muss NTFS sein.

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Header- winioctl.h (enthalten Windows.h)

Siehe auch

CREATE_USN_JOURNAL_DATA

Änderungsjournale

CreateFile-

DELETE_USN_JOURNAL_DATA

DeviceIoControl-

FSCTL_CREATE_USN_JOURNAL

ÜBERLAPPENDE

Volume Management Control Codes