Функция RxFinalizeNetRoot (fcb.h)
RxFinalizeNetRoot завершает указанную структуру NET_ROOT. Вызывающий объект должен иметь монопольную блокировку в таблице netname, связанной с объектом устройства.
Синтаксис
BOOLEAN RxFinalizeNetRoot(
[out] OUT PNET_ROOT ThisNetRoot,
[in] IN BOOLEAN RecursiveFinalize,
[in] IN BOOLEAN ForceFinalize
);
Параметры
[out] ThisNetRoot
Указатель на структуру NET_ROOT для завершения.
[in] RecursiveFinalize
Значение, указывающее, следует ли выполнять завершение рекурсивно.
[in] ForceFinalize
Значение, указывающее, следует ли принудительно завершать, независимо от количества ссылок.
Если forceFinalize имеет значение FALSE, то для завершения NET_ROOT должен быть элемент NodeReferenceCount структуры NET_ROOT, на которую указывает ThisNetRoot .
Возвращаемое значение
RxFinalizeNetRoot возвращает значение TRUE при успешном выполнении или FALSE , если завершение не произошло. Если завершение NET_ROOT уже выполняется, RxFinalizeNetRoot возвращает значение FALSE.
Комментарии
Подпрограмма RxFinalizeNetRoot обычно не вызывается драйверами мини-перенаправления сети напрямую. RDBSS вызывает эту подпрограмму внутренним образом, когда количество ссылок на NET_ROOT уменьшается до 1.
Перед вызовом RxFinalizeNetRoot блокировка таблицы netname, связанной с объектом устройства, должна быть получена в монопольном режиме.
Если параметр RecursiveFinalize имеет значение TRUE, RxFinalizeNetRoot очистит все потерянные структуры FCB, связанные с этим NET_ROOT. Эти потерянные FBS — это структуры, в которых член FcbState имеет флаг FCB_STATE_ORPHANED.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | fcb.h (включая Fcb.h, Mrxfcb.h) |
IRQL | <= APC_LEVEL |