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.