RxPurgeAllFobxs-Funktion (rxprocs.h)
RxPurgeAllFobxs alle FOBX-Strukturen löscht, die einem Netzwerk-Miniumleitungsmodul zugeordnet sind.
Syntax
void RxPurgeAllFobxs(
PRDBSS_DEVICE_OBJECT RxDeviceObject
);
Parameter
RxDeviceObject
Ein Zeiger auf das Miniumleitungsgerätobjekt, für das die Bereinigung ausgeführt werden soll.
Rückgabewert
Nichts
Bemerkungen
Bei der Bereinigung gibt es keine weiteren Benutzerhandles, die dem Dateiobjekt zugeordnet sind. In solchen Fällen wird das Zeitfenster zwischen Schließen und Bereinigen durch die zusätzlichen Verweise bestimmt, die vom Speicher-Manager und Cache-Manager verwaltet werden. RDBSS verwendet einen Gerüstprozess, der auf einem separaten Thread ausgeführt wird, um unbenutzte FOBX und andere Strukturen zu löschen und zu löschen.
Ein Netzwerkminiumleitungsmodul ruft möglicherweise RxPurgeAllFobxs und RxScavengeAllFobsx- als Reaktion auf ein PnP-Energieänderungsereignis auf.
Die RxPurgeAllFobxs Routine übernimmt den Gerüstmutex, durchläuft das ClosePendingFobxsList Member auf dem Gerüstobjekt, das Listeneinträge entfernt, und gibt dann den Mutex frei. Wenn die FOBX-Struktur nicht NULL-ist, löscht RxPurgeAllFobxs die FOBX-Struktur und versucht, eine exklusive Sperre für die zugeordnete FCB-Struktur zu erwerben. Bei erfolgreicher Ausführung versuchen RxPurgeAllFobxs- dann, die NET_FOBX Struktur und Ableitung, Abschluss und Freigabe der FCB-Struktur abzuleiten.
Bei überprüften Builds bewirkt RxPurgeAllFobxs-, dass das System eine Reihe von Bedingungen wie z. B. folgende Bedingungen geltend macht:
- Das Flink- Mitglied von RxScavenger->ClosePendingFobxsList Struktur für die RxDeviceObject- ist NULL-.
- Fobx->NodeTypeCode- ist nicht RDBSS_NTC_FOBX.
- Die Flink- und Blink- Member für einen Listeneintrag sind NULL-.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | rxprocs.h (include Rxprocs.h) |
IRQL- | <= APC_LEVEL |