struttura MARK_HANDLE_INFO (winioctl.h)
Contiene informazioni utilizzate per contrassegnare un file o una directory specificata e il relativo record del journal di modifica del numero di sequenza di aggiornamento (USN) con i dati sulle modifiche. Viene usato dal codice di controllo FSCTL_MARK_HANDLE.
Sintassi
typedef struct _MARK_HANDLE_INFO {
union {
DWORD UsnSourceInfo;
DWORD CopyNumber;
} DUMMYUNIONNAME;
DWORD UsnSourceInfo;
HANDLE VolumeHandle;
DWORD HandleInfo;
} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO;
Membri
DUMMYUNIONNAME
DUMMYUNIONNAME.UsnSourceInfo
DUMMYUNIONNAME.CopyNumber
UsnSourceInfo
Tipo di modifiche da apportare.
L'operazione non modifica il file o la directory esternamente dal punto di vista dell'applicazione che l'ha creata.
Quando un thread scrive un nuovo record USN, i flag di informazioni di origine nel record precedente continuano a essere presenti solo se il thread imposta anche tali flag. Pertanto, la struttura delle informazioni di origine consente alle applicazioni di filtrare i record USN impostati solo da un'origine nota, ad esempio un filtro antivirus.
Vengono definiti i valori seguenti.
Valore | Significato |
---|---|
|
L'operazione fornisce informazioni su una modifica al file o alla directory apportata dal sistema operativo.
Un uso tipico è quando Archiviazione remota sposta i dati da una risorsa di archiviazione esterna a quella locale. Archiviazione remota è il software di gestione gerarchica delle risorse di archiviazione. Tale spostamento in genere aggiunge almeno il flag USN_REASON_DATA_OVERWRITE a un record USN. Tuttavia, i dati non sono stati modificati dal punto di vista dell'utente. Notando USN_SOURCE_DATA_MANAGEMENT nel SourceInfo membro della struttura USN_RECORD che contiene il record, è possibile determinare che, anche se viene eseguita un'operazione di scrittura sull'elemento, i dati non sono stati modificati. |
|
L'operazione aggiunge un flusso di dati privato a un file o a una directory.
Un esempio potrebbe essere un rilevatore di virus che aggiunge informazioni di checksum. Quando il rilevatore di virus modifica l'elemento, il sistema genera record USN. USN_SOURCE_AUXILIARY_DATA indica che le modifiche non hanno modificato i dati dell'applicazione. |
|
L'operazione crea o aggiorna il contenuto di un file replicato.
Ad esempio, il servizio di replica file imposta questo flag quando crea o aggiorna un file in una directory replicata. |
|
La replica viene eseguita nei sistemi client dal cloud o dai server. |
VolumeHandle
Handle di volume per il volume in cui risiede il file o la directory. Per altre informazioni su come ottenere un handle di volume, vedere la sezione Osservazioni.
Questo handle è necessario per controllare i privilegi per questa operazione.
Il chiamante deve avere il privilegio SE_MANAGE_VOLUME_NAME. Per altre informazioni, vedere Privilegi.
HandleInfo
Flag che specifica informazioni aggiuntive sul file o sulla directory identificate dal valore dell'handle nel membro VolumeHandle.
Valore | Significato |
---|---|
|
Il file viene contrassegnato come non è possibile deframmentare fino alla chiusura dell'handle.
Una volta chiuso un handle contrassegnato MARK_HANDLE_PROTECT_CLUSTERS, non c'è alcuna garanzia che i cluster del file non vengano spostati. |
|
Il file viene contrassegnato come non è possibile deframmentare fino alla chiusura dell'handle.
Windows Server 2003: Questo flag non è supportato fino a Windows Server 2003 con SP1. Windows XP: Questo flag non è supportato. |
|
Il file viene contrassegnato come non è possibile deframmentare fino alla chiusura dell'handle.
Windows Server 2003: Questo flag non è supportato fino a Windows Server 2003 con SP1. Windows XP: Questo flag non è supportato. |
|
Il file è contrassegnato per il comportamento di lettura in tempo reale indipendentemente dal tipo di file effettivo. I file contrassegnati con questo flag devono essere aperti per i/O non memorizzati nel buffer.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo flag non è supportato. |
|
Il file contrassegnato in precedenza per il comportamento di lettura in tempo reale usando il flag MARK_HANDLE_REALTIME può essere deselezionato usando questo flag, rimuovendo il comportamento in tempo reale. I file contrassegnati con questo flag devono essere aperti per i/O non memorizzati nel buffer.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo flag non è supportato. |
|
Indica il numero di copia specificato nel membro CopyNumber Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo flag non è supportato fino a Windows 8 e Windows Server 2012. |
|
Il file contrassegnato in precedenza per il comportamento di lettura-copia usando il flag MARK_HANDLE_READ_COPY può essere deselezionato usando questo flag, rimuovendo il comportamento di lettura-copia. I file contrassegnati con questo flag devono essere aperti per i/O non memorizzati nel buffer.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo flag non è supportato fino a Windows 8 e Windows Server 2012. |
|
Quando si mescola la memoria mappata/memorizzata nella cache di I/O con operazioni di I/O non memorizzate nella cache, il sistema tenta di eliminare i mapping di memoria per l'intervallo di I/O non memorizzato nella cache. Se queste ripuliture hanno esito negativo, il sistema normalmente non restituisce l'errore al chiamante che può causare uno stato danneggiato (motivo per cui la documentazione indica di non eseguire questa operazione). Questo flag indica al sistema di restituire errori di eliminazione per l'handle specificato in modo che l'applicazione possa gestire meglio questa situazione Questo flag non è supportato fino a Windows 8 e Windows Server 2012. |
|
Un file estremamente frammentato in NTFS usa più record MFT per descrivere tutti gli extent per un file. Questo elenco di record MFT figlio (noti anche come record FRS) è controllato da una struttura nota come elenco di attributi. Un elenco di attributi è limitato a 128.000 dimensioni. Quando la dimensione di un elenco di attributi raggiunge una determinata soglia NTFS attiverà una compattazione in background negli extent, in modo che venga usato il numero minimo di record FRS figlio.
Questo flag disabilita questa funzionalità di compattazione FRS per il file specificato.
Questo flag non è supportato fino a Windows 10. |
|
Indica a NTFS di impostare il valore UsnSourceInfo specificato nelle scritture di paging nel journal USN. Tradizionalmente questa operazione non è stata eseguita sulle scritture di paging poiché il sistema non sapeva quale thread ha apportato le modifiche date. Si tratta di un override. Questa operazione funziona solo se Il fileObject utilizzato da Gestione memoria ha questo stato associato.
Questo flag non è supportato fino a Windows 10. |
|
L'impostazione di questo flag indica al sistema che le scritture non sono consentite in questo file. Se un'applicazione tenta di aprire il file per l'accesso in scrittura, l'operazione non riesce con STATUS_ACCESS_DENIED.
Se viene visualizzato un errore di scrittura, l'operazione non è riuscita con STATUS_MARKED_TO_DISALLOW_WRITES Questo flag non è supportato fino a Windows 10. |
Osservazioni
Per recuperare un handle in un volume, chiamare
"\.\X:"
Nella stringa precedente X è la lettera che identifica l'unità in cui viene visualizzato il volume.
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) |