Fonction RxScavengeFobxsForNetRoot (scavengr.h)
RxScavengeFobxsForNetRoot récupère 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 extraites.
PurgingFcb
Pointeur vers le fcb pour lequel le repérage doit se produire.
SynchronizeWithScavenger
Valeur booléenne qui spécifie si cette routine doit être synchronisée avec le charognard.
Valeur de retour
None
Remarques
Au nettoyage, il n’y a 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 gérées par le gestionnaire de mémoire et le gestionnaire de cache. Lors du nettoyage, le FOBX est placé sur une liste fermée en attente et supprimé de la liste correspondante lorsqu’une opération de fermeture est reçue. Entre-temps, si une opération ouverte échoue avec ACCESS_DENIED status, RDBSS peut forcer une purge et un nettoyage de la structure FOBX. Il s’agit d’une opération synchrone.
Pour les renommages de répertoires, tous les fichiers sous le répertoire doivent être fermés. Ainsi, un mini-redirecteur réseau peut appeler RxPurgeRelatedFobxs et RxScavengeFobxsForNetRoot en réponse à une IRP_MJ_SET_INFORMATION demande de renommer un répertoire. En transmettant la structure NET_ROOT pour le répertoire et un FCB NULL , toutes les structures FOBX associées au répertoire sont purgées et récupérées.
La routine RxScavengeFobxsForNetRoot acquiert le mutex scavenger, traverse le membre de la liste FobxsToBeFinalized de l’objet scavenger et ajoute toutes les entrées trouvées à la queue du membre ScavengerFinalizationList de l’objet scavenger, puis libère le mutex.
Si PurgingFcb n’a pas la valeur 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 liste FobxsToBeFinalized membre 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 oblige le système à ASSERT pour la condition suivante :
- Le membre NodeTypeCode d’une structure FOBX n’est pas RDBSS_NTC_FOBX.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | scavengr.h (inclure Rxprocs.h) |
IRQL | <= APC_LEVEL |