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

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

Синтаксис

VOID RxPurgeAllFobxs(
  PRDBSS_DEVICE_OBJECT RxDeviceObject
);

Параметры

RxDeviceObject

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

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

Никакой

Замечания

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

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

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

При проверенных сборках RxPurgeAllFobxs приводит к тому, что система БУДЕТ УТВЕРЖДАТЬ для ряда условий, включая следующие:

  • Элемент FlinkRxScavenger->ClosePendingFobxsList в RxDeviceObject имеет значение NULL.
  • Fobx->NodeTypeCode не RDBSS_NTC_FOBX.
  • Элементы Flink и Blink для записи списка NULL.

Требования

Требование Ценность
целевая платформа Настольный
заголовка rxprocs.h (include Rxprocs.h)
IRQL <= APC_LEVEL

См. также

RxPurgeRelatedFobxs

RxScavengeAllFobxs

RxScavengeFobxsForNetRoot