Freigeben über


Lösch- und Aufräumsteuerelement

RDBSS bietet eine Reihe von Routinen zum Bereinigen und Löschen von FOBX-Strukturen, wenn sie nicht mehr benötigt werden.

Bei der Bereinigung sind dem Dateiobjekt keine weiteren Benutzerhandles zugeordnet. In solchen Fällen wird das Zeitfenster zwischen schließen und bereinigen durch die zusätzlichen Verweise diktiert, die von Memory Manager und Cache-Manager verwaltet werden. RDBSS verwendet einen Scavenger-Prozess, der in einem separaten Thread ausgeführt wird, um nicht benötigte FOBX und andere Strukturen zu löschen und zu löschen.

Derzeit wurde das Scavenging für SRV_CALL-, NET_ROOT- und V_NET_ROOT-Strukturen implementiert. Das FCB-Abfangen wird separat gehandhabt. Die FOBX kann und sollte immer synchron abgeschlossen werden. Die einzige Datenstruktur, die potenziell für eine abgefangene Finalisierung aktiviert werden muss, sind SRV_OPEN-Strukturen.

Der Scavenger-Prozess, wie er in RDBSS implementiert ist, verbraucht derzeit keine Systemressourcen, bis eine abgefangene Finalisierung erforderlich ist. Der erste Eintrag, der für die abgefangene Finalisierung markiert werden soll, führt dazu, dass eine Zeitgeberanforderung für den Scavenger gepostet wird. In der aktuellen Implementierung werden die Zeitgeberanforderungen als einmalige Timeranforderungen bereitgestellt. Dies bedeutet, dass es keine Garantien für das Zeitintervall gibt, in dem die Einträge abgeschlossen werden. Der Aktivierungsmechanismus der Aasfresser ist ein potenzieller Kandidat für die Optimierung zu einem späteren Zeitpunkt.

Die RDBSS-Lösch- und -Aufräumroutinen umfassen Folgendes:

-Routine zurückgegebener Wert Beschreibung

RxPurgeAllFobxs

Diese Routine löscht alle FOBX-Strukturen, die einem Netzwerk-Mini-Redirector zugeordnet sind.

RxPurgeRelatedFobxs

Diese Routine löscht alle FOBX-Strukturen, die einer NET_ROOT-Struktur zugeordnet sind.

RxScavengeAllFobxs

Diese Routine löscht alle FOBX-Strukturen, die einem bestimmten Netzwerk-Mini-Redirector-Geräteobjekt zugeordnet sind.

RxScavengeFobxsForNetRoot

Diese Routine löscht alle FOBX-Strukturen, die einer bestimmten NET_ROOT-Struktur zugeordnet sind.