Operazioni reparse point
Per determinare se un file system supporta reparse points, chiamare la funzione GetVolumeInformation ed esaminare il flag di bit FILE_SUPPORTS_REPARSE_POINTS .
La funzione DeviceIoControl consente di impostare, modificare, ottenere e rimuovere reparse points. Nella tabella seguente vengono descritte le operazioni di reparse point che è possibile eseguire usando DeviceIoControl.
Operazione | Descrizione |
---|---|
FSCTL_SET_REPARSE_POINT | Consente al programma chiamante di impostare un nuovo punto di correzione o di modificarne uno esistente. |
FSCTL_GET_REPARSE_POINT | Ottiene le informazioni archiviate in un reparse point esistente. |
FSCTL_DELETE_REPARSE_POINT | Rimuove un punto di ripristino esistente. |
Se si sta modificando, ottenendo o eliminando un reparse point, è necessario specificare lo stesso tag reparse nell'operazione contenuta nel file. In caso contrario, l'operazione avrà esito negativo con l'errore ERROR_REPARSE_TAG_MISMATCH. Se si modifica o si elimina un reparse point, è necessario specificare anche il GUID reparse nell'operazione contenuta nel file. In caso contrario, l'operazione avrà esito negativo con l'errore ERROR_REPARSE_ATTRIBUTE_CONFLICT.
Per determinare se un file o una directory contiene un reparse point, usare la funzione GetFileAttributes . Se il file o la directory ha un reparse point associato, viene impostato l'attributo FILE_ATTRIBUTE_REPARSE_POINT .
Per sovrascrivere un punto di analisi esistente senza avere già un handle per il file o la directory, chiamare CreateFile con FILE_FLAG_OPEN_REPARSE_POINT. Questo flag consente di aprire il file indipendentemente dal fatto che il filtro del file system corrispondente sia installato e funzioni correttamente.