Поделиться через


Функция RxScavengeFobxsForNetRoot (scavengr.h)

RxScavengeFobxsForNetRoot расшифровывает все структуры FOBX, связанные с заданной структурой NET_ROOT.

Синтаксис

void RxScavengeFobxsForNetRoot(
  PNET_ROOT NetRoot,
  PFCB      PurgingFcb,
  BOOLEAN   SynchronizeWithScavenger
);

Параметры

NetRoot

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

PurgingFcb

Указатель на ФКБ, для которого должна происходить очистка.

SynchronizeWithScavenger

Логическое значение, указывающее, должна ли эта подпрограмма синхронизироваться с scavenger.

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

Никакой

Замечания

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

Для переименования каталога все файлы в каталоге должны быть закрыты. Таким образом, мини-перенаправление сети может вызывать RxPurgeRelatedFobxs и RxScavengeFobxsForNetRoot в ответ на запрос IRP_MJ_SET_INFORMATION переименовать каталог. Передав структуру NET_ROOT для каталога и NULL FCB, все структуры FOBX, связанные с каталогом, будут очищаться и очищаться.

Подпрограмма RxScavengeFobxsForNetRoot получает мьютекс scavenger, проходит FobxsToBeFinalized элемент списка объекта scavenger и добавляет все записи, найденные в хвост ScavengerFinalizationList член объекта scavenger, а затем освобождает мьютекс.

Если purgingFcb не NULL, и эта очистка структуры FCB не совпадает со структурой FOBX в FobxsToBeFinalized элемент списка объекта scavenger, RxScavengeFobxsForNetRoot вызовет подпрограмму обратного вызова MRxAreFilesAliased, предоставляемую мини-перенаправлением сети, если она поддерживается. Вызов MRxAreFilesAliased заключается в том, чтобы определить, является ли PFCB псевдонимом для FCB, связанного со структурой FOBX.

В проверенных сборках RxScavengeAllFobxs приводит к возникновению следующего условия:

  • Элемент nodeTypeCode структуры FOBX не RDBSS_NTC_FOBX.

Требования

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

См. также

MRxAreFilesAliased

RxPurgeAllFobxs

RxPurgeRelatedFobxs

RxScavengeAllFobxs