Функция RxPurgeAllFobxs (rxprocs.h)

RxPurgeAllFobxs очищает все структуры FOBX, связанные с мини-перенаправителем сети.

Синтаксис

void RxPurgeAllFobxs(
  PRDBSS_DEVICE_OBJECT RxDeviceObject
);

Параметры

RxDeviceObject

Указатель на объект устройства мини-перенаправления, для которого необходимо выполнить очистку.

Возвращаемое значение

None

Remarks

При очистке больше нет пользовательских дескрипторов, связанных с объектом файла. В таких случаях интервал времени между закрытием и очисткой определяется дополнительными ссылками, поддерживаемыми диспетчером памяти и диспетчером кэша. RDBSS использует процесс очистки мусора, выполняющийся в отдельном потоке, для очистки ненужных FOBX и других структур.

Сетевой мини-перенаправитель может вызывать RxPurgeAllFobxs и RxScavengeAllFobsx в ответ на событие изменения питания PnP.

Подпрограмма RxPurgeAllFobxs получает мьютекс мусора, просматривает член ClosePendingFobxsList в объекте scavenger, удаляя записи списка, а затем освобождает мьютекс. Если структура FOBX не имеет значение NULL, RxPurgeAllFobxs очистит структуру FOBX и попытается получить монопольную блокировку связанной структуры FCB. В случае успешного выполнения RxPurgeAllFobxs попытается разыменовать структуру NET_FOBX и разыменовать, завершить и освободить структуру FCB.

В проверенных сборках RxPurgeAllFobxs вызывает в системе assert ряд условий, включая следующие:

  • Элемент Flink структуры RxScavenger->ClosePendingFobxsList в объекте RxDeviceObject имеет значение NULL.
  • Fobx->NodeTypeCode не RDBSS_NTC_FOBX.
  • Элементы Flink и Blink для записи списка имеют значение NULL.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть rxprocs.h (включая Rxprocs.h)
IRQL <= APC_LEVEL

См. также раздел

RxPurgeRelatedFobxs

RxScavengeAllFobxs

RxScavengeFobxsForNetRoot