Condividi tramite


FSCTL_DELETE_USN_JOURNAL IOCTL (winioctl.h)

Elimina il journal delle modifiche del numero di sequenza di aggiornamento (USN) in un volume o attende la notifica dell'eliminazione del journal delle modifiche.

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

Osservazioni

Per le implicazioni dell'I/O sovrapposto in questa operazione, vedere la sezione Osservazioni dell'argomento DeviceIoControl.

È possibile usare FSCTL_DELETE_USN_JOURNAL per eliminare un journal delle modifiche. Il file system NTFS avvia un'operazione di eliminazione e torna immediatamente al processo chiamante, a meno che il flag USN_DELETE_FLAG_NOTIFY non sia impostato nel DeleteFlags membro di DELETE_USN_JOURNAL_DATA.

Se i flag USN_DELETE_FLAG_NOTIFY e USN_DELETE_FLAG_DELETE sono entrambi impostati, una chiamata a FSCTL_DELETE_USN_JOURNAL avvia il processo di eliminazione. La chiamata blocca quindi il thread chiamante e attende l'eliminazione (in una chiamata sincrona o non sovrapposta) oppure configura la notifica degli eventi usando una porta di completamento I/O o un altro meccanismo e restituisce (in una chiamata asincrona o sovrapposta).

È anche possibile usare FSCTL_DELETE_USN_JOURNAL per ricevere una notifica che informa che l'eliminazione del journal delle modifiche è stata completata impostando solo USN_DELETE_FLAG_NOTIFY. In questo caso, l'operazione FSCTL_DELETE_USN_JOURNAL attende il completamento dell'eliminazione prima di restituire (in una chiamata sincrona o non sovrapposta) o configura la notifica degli eventi usando una porta di completamento I/O o un altro meccanismo (in una chiamata asincrona o sovrapposta).

L'eliminazione in cui un'applicazione riceve una notifica può essere stata avviata dal processo corrente o da un altro processo. Ad esempio, quando un'applicazione viene avviata, può usare FSCTL_DELETE_USN_JOURNAL per determinare se un'eliminazione avviata da un altro processo è in corso e, in caso affermativo, uscire.

L'eliminazione completa di un journal delle modifiche richiede un'analisi del volume in cui risiede il journal delle modifiche, che può richiedere molto tempo su un volume con molti file. L'operazione continua a essere completata anche tra i riavvii del sistema. I tentativi di creare, modificare, eliminare o eseguire query nel journal delle modifiche mentre l'eliminazione è in corso hanno esito negativo e restituiscono il codice di errore ERROR_JOURNAL_DELETE_IN_PROGRESS.

L'operazione FSCTL_DELETE_USN_JOURNAL ha un costo significativo in termini di prestazioni, quindi deve essere usata con moderazione. Un amministratore deve eliminare un journal quando il valore USN corrente si avvicina a quello del valore USN massimo possibile.

Per altre informazioni, vedere Creazione, modifica ed eliminazione di un journal delle modifiche.

Per recuperare un handle in un volume, chiamare CreateFile con il parametro lpFileName impostato su una stringa nel formato seguente:

\\.\X:

Nella stringa precedente X è la lettera che identifica l'unità in cui viene visualizzato il volume. Il volume deve essere NTFS.

In Windows 8 e Windows Server 2012 questo codice è supportato dalle tecnologie seguenti.

Tecnologia Sostenuto
Protocollo SMB (Server Message Block) 3.0 No
SMB 3.0 Transparent Failover (TFO) No
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) No
Cluster Shared Volume File System (CsvFS)

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
intestazione winioctl.h (include Windows.h)

Vedere anche

CREATE_USN_JOURNAL_DATA

cambia journal

CreateFile

DELETE_USN_JOURNAL_DATA

DeviceIoControl

FSCTL_CREATE_USN_JOURNAL

OVERLAPPED

codici di controllo di gestione dei volumi