Функция 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 |