Condividi tramite


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.