Gestione dei segnaposto
Linee guida per minifilter che implementano segnaposto
Tutte le implementazioni di virtualizzazione che usano segnaposto devono impostare l'attributo file FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS su questi segnaposto . Questo attributo indica che:
- La lettura di tali file dal minifiltro proprietario potrebbe restituire 0s e
- La lettura di tali file dall'alto del minifiltro comporta il costo aggiuntivo per l'arredamento dei dati.
Un minifilter può rimuovere questo attributo dal segnaposto una volta che i dati sono disponibili in locale.
Tutti i minifilter che implementano i segnaposto devono trovarsi nel gruppo di ordini di carico HSM.
Linee guida per tutti i minifiltri
I filtri non devono emettere letture/scritture mirate da istanze di filtro sotto il gruppo di ordini di carico HSM per i file che hanno l'attributo FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS impostato. Questa situazione potrebbe causare il danneggiamento dei dati dei file. Uno sviluppatore di minifilter potrebbe tentare di aggirare questa situazione inviando una richiesta di I/O all'inizio dello stack, ma tale richiesta potrebbe causare deadlock.
I filtri non devono inoltre emettere letture e scritture nei file segnaposto con l'attributo FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS impostato da sopra il gruppo di ordini di carico HSM. Tale lettura o scrittura causa un'idratazione non necessaria quando nessuna applicazione utente ha richiesto i dati del file.
Un minifilter non deve generare letture/scritture sull'intercettazione dell'attributo. Tali operazioni di lettura/scrittura possono causare deadlock perché alcune implementazioni non prevedono che l'attributo venga convertito in operazioni di accesso ai dati. Inoltre, tali letture/scritture sconfiggono lo scopo di un controllo minifilter per FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS in modo che possa evitare le due situazioni sopra descritte.
Pertanto, è consigliabile che tutti i minifiltri non devono emettere letture/scritture nei file che hanno FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS impostato.