FSCTL_MARK_HANDLE IOCTL (winioctl.h)
Contrassegna un file o una directory specificata e il relativo record del journal di modifica con informazioni sulle modifiche apportate a tale file o directory.
Per eseguire questa operazione, chiamare la funzione DeviceIoControl usando i parametri seguenti.
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
);
Commenti
Per le implicazioni dell'I/O sovrapposta in questa operazione, vedere la sezione Osservazioni dell'argomento DeviceIoControl .
FSCTL_MARK_HANDLE è l'unica operazione di journal di modifica che opera su un singolo file o directory. Non influisce su alcun elemento che l'utente può fare con l'elemento. Aggiunge invece informazioni al file o alla directory, fornendo informazioni su come il sistema operativo ha modificato l'elemento o aggiungendo un flusso di dati privato all'elemento.
Se si verificano modifiche al file o alla directory, le informazioni aggiunte con FSCTL_MARK_HANDLE vengono copiate anche nel record USN creato per il file o la directory. Si noti che queste due operazioni possono verificarsi indipendentemente l'una dall'altra, ad esempio non è necessario che un record USN esista per essere in grado di contrassegnare un file come non può essere deframmentato e non è necessario contrassegnare un file o una directory per aggiornare il contenuto del record USN corrispondente. Per informazioni dettagliate sulle informazioni con cui FSCTL_MARK_HANDLE può contrassegnare un elemento (vedere MARK_HANDLE_INFO per altre informazioni).
Non è un errore usare FSCTL_MARK_HANDLE mentre il journal di modifica del volume viene eliminato o è inattivo. Le informazioni appropriate vengono applicate al file o alla directory indipendentemente dallo stato del journal di modifica, purché esista il journal di modifica.
Si noti che i timestamp potrebbero non essere aggiornati correttamente per un file remoto. Per garantire risultati coerenti, usare I/O non memorizzati.
Il volume deve essere NTFS.
In Windows 8 e Windows Server 2012 questo codice è supportato dalle tecnologie seguenti.
Tecnologia | Supportato |
---|---|
Protocollo SMB (Server Message Block) 3.0 | No |
Failover trasparente SMB 3.0 (TFO) | No |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | No |
File system del volume condiviso del cluster (CsvFS) | Sì |
CsvFs genera sempre problemi USN_SOURCE_REPLICATION_MANAGEMENT e MARK_HANDLE_PROTECT_CLUSTERS per i file idonei per l'I/O diretto.
Requisiti
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) |