Funzione RxScavengeFobxsForNetRoot (scavengr.h)
RxScavengeFobxsForNetRoot scavenge tutte le strutture FOBX associate a una determinata struttura NET_ROOT.
Sintassi
void RxScavengeFobxsForNetRoot(
PNET_ROOT NetRoot,
PFCB PurgingFcb,
BOOLEAN SynchronizeWithScavenger
);
Parametri
NetRoot
Puntatore alla struttura NET_ROOT per cui le strutture FOBX devono essere scavenged.
PurgingFcb
Puntatore al cluster di failover per il quale deve verificarsi lo scavenging.
SynchronizeWithScavenger
Valore booleano che specifica se questa routine deve essere sincronizzata con lo scavenger.
Valore restituito
nessuno
Osservazioni
Al momento della pulizia, non sono presenti altri handle utente associati all'oggetto file. In questi casi, l'intervallo di tempo tra chiusura e pulizia è determinato dai riferimenti aggiuntivi gestiti dal gestore della memoria e dalla gestione cache. Durante la pulizia, FOBX viene inserito in un elenco in sospeso chiuso e rimosso dall'elenco corrispondente quando viene ricevuta un'operazione di chiusura. Nel frattempo, se un'operazione aperta ha esito negativo con stato ACCESS_DENIED, RDBSS può forzare un'eliminazione e scavenge della struttura FOBX. Si tratta di un'operazione sincrona.
Per le ridenominazione della directory, tutti i file nella directory devono essere chiusi. Pertanto, un mini-redirector di rete potrebbe chiamare RxPurgeRelatedFobxs e RxScavengeFobxsForNetRoot in risposta a una richiesta di IRP_MJ_SET_INFORMATION per rinominare una directory. Passando la struttura NET_ROOT per la directory e un fcb NULL , tutte le strutture FOBX associate alla directory verranno eliminate e scavenged.
La routine RxScavengeFobxsForNetRoot acquisisce il mutex scavenger, attraversa il membro dell'elenco FobxsToBeFinalized dell'oggetto scavenger e aggiunge tutte le voci trovate alla fine del membro ScavengerFinalizationList dell'oggetto scavenger e quindi rilascia il mutex.
Se PurgingFcb non è NULL e questa struttura FCB di eliminazione non corrisponde all'fcb associato alla struttura FOBX nel membro dell'elenco FobxsToBeFinalized dell'oggetto scavenger, RxScavengeFobxsForNetRoot chiamerà la routine di callback MRxAreFilesAlias fornita dal mini redirector di rete, se supportato. La chiamata a MRxAreFilesAliased consiste nel determinare se PFCB è un alias per l'fcB associato alla struttura FOBX.
Nelle build controllate RxScavengeAllFobxs fa sì che il sistema asserisca la condizione seguente:
- Il membro NodeTypeCode di una struttura FOBX non è RDBSS_NTC_FOBX.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | scavengr.h (include Rxprocs.h) |
IRQL | <= APC_LEVEL |