FSCTL_DELETE_USN_JOURNAL IOCTL (winioctl.h)

Löscht das Änderungsjournal der Updatesequenznummer (USN) auf einem Volume oder wartet auf eine 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

Hinweise

Die Auswirkungen von überlappenden E/A-Vorgängen auf 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-Element von DELETE_USN_JOURNAL_DATA festgelegt.

Wenn die Flags USN_DELETE_FLAG_NOTIFY und USN_DELETE_FLAG_DELETE festgelegt sind, wird der Löschvorgang durch einen Aufruf von FSCTL_DELETE_USN_JOURNAL gestartet. Anschließend blockiert der Aufruf entweder den aufrufenden Thread und wartet auf das Löschen (bei einem synchronen oder nicht überlappenden Aufruf), oder richtet ereignisbenachrichtigungen 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 eine Benachrichtigung zu erhalten, dass das Löschen eines Änderungsjournals abgeschlossen ist, indem Sie nur USN_DELETE_FLAG_NOTIFY festlegen. 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 es wird eine Ereignisbenachrichtigung mithilfe eines E/A-Vervollständigungsports oder eines anderen Mechanismus (bei einem asynchronen oder überlappenden Aufruf) eingerichtet.

Die Löschung, über die eine Anwendung eine Benachrichtigung erhält, wurde möglicherweise durch den aktuellen Prozess oder einen anderen Prozess initiiert. Wenn eine Anwendung beispielsweise gestartet wird, kann sie FSCTL_DELETE_USN_JOURNAL verwenden, um zu bestimmen, ob ein Löschvorgang ausgeführt wird, der von einem anderen Prozess gestartet wurde, und wenn dies der Vorgang ist, beenden.

Das vollständige Löschen eines Änderungsjournals erfordert eine Überprüfung des Volumes, in dem sich das Änderungsjournal befindet, was auf einem Volume mit vielen Dateien lange dauern kann. Der Vorgang wird auch bei Systemneustarts abgeschlossen. Versuche, das Änderungsjournal während des Löschvorgangs zu erstellen, zu ändern, zu löschen oder abzufragen, schlagen fehl und geben den Fehlercode ERROR_JOURNAL_DELETE_IN_PROGRESS zurück.

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

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

Um ein Handle für ein Volume abzurufen, rufen Sie CreateFile auf, wobei der lpFileName-Parameter auf eine Zeichenfolge in der folgenden Form festgelegt ist:

\.\X:

In der vorherigen Zeichenfolge ist X der Buchstabe, der das Laufwerk identifiziert, 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 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

Anforderungen

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

Weitere Informationen

CREATE_USN_JOURNAL_DATA

Änderungsjournale

CreateFile

DELETE_USN_JOURNAL_DATA

DeviceIoControl

FSCTL_CREATE_USN_JOURNAL

OVERLAPPED

Volumeverwaltungs-Steuerungscodes