Funzione RxPurgeRelatedFobxs (scavengr.h)

RxPurgeRelatedFobxs elimina tutte le strutture FOBX associate a una struttura NET_ROOT.

Sintassi

NTSTATUS RxPurgeRelatedFobxs(
  PNET_ROOT   NetRoot,
  PRX_CONTEXT RxContext,
  BOOLEAN     AttemptFinalization,
  PFCB        PurgingFcb
);

Parametri

NetRoot

Puntatore alla struttura NET_ROOT per cui devono essere eliminate le strutture FOBX.

RxContext

Puntatore alla struttura RX_CONTEXT.

AttemptFinalization

Valore booleano che indica se deve verificarsi un tentativo di finalizzare e rilasciare la struttura FCB associata.

PurgingFcb

Puntatore alla struttura FCB per cui deve verificarsi l'eliminazione.

Valore restituito

RxPurgeRelatedFobxs restituisce STATUS_SUCCESS in caso di esito positivo o uno dei valori di errore seguenti in caso di errore:

Codice restituito Descrizione
STATUS_UNSUCCESSFUL
Non è possibile eliminare strutture FOBX correlate.

Commenti

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 l'eliminazione della struttura FOBX. Si tratta di un'operazione sincrona.

Per le ridenominazione della directory, tutti i file nella directory devono essere chiusi. 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 RxPurgeRelatedFobxs tenta di eliminare tutte le strutture FOBX che avevano un'operazione di chiusura in sospeso prima della ricezione della richiesta di eliminazione. La routine RxPurgeRelatedFobxs acquisisce il mutex scavenger, attraversa il membro ClosePendingFobxsList sull'oggetto scavenger rimuovendo le voci dell'elenco e quindi rilascia il mutex.

Se AttemptFinalize è impostato su TRUE, RxPurgeRelatedFobxs tenterà di finalizzare e rilasciare il cluster di failover associato.

Se PFCB non è NULL e questa operazione di eliminazione dell'fcb strcuture non corrisponde alla struttura FCB associata a FOBX nel membro ClosePendingFobxsList , RxPurgeRelatedFobxs chiamerà la routine di callback MRxAreFilesAliased fornita dal mini redirector di rete se questa routine è supportata. La chiamata a MRxAreFilesAliased consiste nel determinare se PFCB è un alias per l'fcB associato alla struttura FOBX.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione scavengr.h (include Rxprocs.h)
IRQL <= APC_LEVEL

Vedi anche

MRxAreFilesAliased

RxPurgeAllFobxs

RxScavengeAllFobxs

RxScavengeFobxsForNetRoot