Partager via


RxScavengeFobxsForNetRoot, fonction (scavengr.h)

RxScavengeFobxsForNetRoot débogue toutes les structures FOBX associées à une structure NET_ROOT donnée.

Syntaxe

void RxScavengeFobxsForNetRoot(
  PNET_ROOT NetRoot,
  PFCB      PurgingFcb,
  BOOLEAN   SynchronizeWithScavenger
);

Paramètres

NetRoot

Pointeur vers la structure NET_ROOT pour laquelle les structures FOBX doivent être délimitées.

PurgingFcb

Pointeur vers le FCB pour lequel la casse doit se produire.

SynchronizeWithScavenger

Valeur booléenne qui spécifie si cette routine doit être synchronisée avec le scavenger.

Valeur de retour

Aucun

Remarques

Lors du nettoyage, il n’existe plus de handles utilisateur associés à l’objet de fichier. Dans ce cas, la fenêtre de temps entre la fermeture et le nettoyage est dictée par les références supplémentaires conservées par le gestionnaire de mémoire et le gestionnaire de cache. Lors du nettoyage, le FOBX est placé sur une liste en attente de fermeture et supprimé de la liste correspondante lorsqu’une opération de fermeture est reçue. Dans l’intervalle, si une opération ouverte échoue avec ACCESS_DENIED’état, rdBSS peut forcer une purge et unevenge de la structure FOBX. Il s’agit d’une opération synchrone.

Pour les renommages de répertoire, tous les fichiers sous le répertoire doivent être fermés. Par conséquent, un mini-redirecteur réseau peut appeler RxPurgeRelatedFobxs et RxScavengeFobxsForNetRoot en réponse à une demande de IRP_MJ_SET_INFORMATION pour renommer un répertoire. En passant la structure NET_ROOT pour le répertoire et une NULL FCB, toutes les structures FOBX associées au répertoire seraient vidées et délimitées.

La routine RxScavengeFobxsForNetRoot acquiert le mutex scavenger, traverse le FobxsToBeFinalized membre de liste de l’objet scavenger et ajoute toutes les entrées trouvées à la fin de la ScavengerFinalizationList membre de l’objet scavenger, puis libère le mutex.

Si purgingFcb n’est pas NULL, et que cette structure FCB purgée n’est pas la même que la structure FCB associée à la structure FOBX sur la FobxsToBeFinalized membre de liste de l’objet scavenger, RxScavengeFobxsForNetRoot appelle la routine de rappel MRxAreFilesAliased fournie par le mini-redirecteur réseau si elle est prise en charge. L’appel à MRxAreFilesAliased consiste à déterminer si le PFCB est un alias pour le FCB associé à la structure FOBX.

Sur les builds vérifiées, RxScavengeAllFobxs provoque l’assertion du système pour la condition suivante :

  • Le NodeTypeCode membre d’une structure FOBX n’est pas RDBSS_NTC_FOBX.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête scavengr.h (include Rxprocs.h)
IRQL <= APC_LEVEL

Voir aussi

MRxAreFilesAliased

RxPurgeAllFobxs

RxPurgeRelatedFobxs

RxScavengeAllFobxs