Condividi tramite


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)

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)

Vedi anche