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

RxFinalizeConnection удаляет подключение к общей папке. Все файлы, открытые при подключении, закрываются в зависимости от указанного уровня силы. Мини-перенаправитель сети может сохранить транспортное подключение открытым для повышения производительности, если не указан какой-то параметр для принудительного закрытия подключения.

Синтаксис

NTSTATUS RxFinalizeConnection(
  IN OUT PNET_ROOT   NetRoot,
  IN OUT PV_NET_ROOT VNetRoot,
  IN LOGICAL         ForceFilesClosed
);

Параметры

NetRoot

[вход, выход] Указатель на завершаемую структуру NET_ROOT.

VNetRoot

Указатель на завершаемую структуру V_NET_ROOT.

ForceFilesClosed

Флаг, управляющий поведением подпрограммы RxFinalizeConnection . Флаг может иметь одно из следующих значений:

ИСТИННЫЙ

RxFinalizeConnection выполняется успешно, даже если потерянные файлы и запросы IRP_MN_NOTIFY_CHANGE_DIRECTORY открыты. Параметр принудительно закрывает эти потерянные файлы.

ЛОЖНЫХ

RxFinalizeConnection завершается сбоем , если открыты файлы или уведомления об изменениях.

0xff

RxFinalizeConnection удаляет дополнительную ссылку на структуру V_NET_ROOT из-за запроса на добавление подключения, но в противном случае действует как FALSE. RxFinalizeConnection завершается сбоем , если открыты файлы или уведомления об изменениях.

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

RxFinalizeConnection возвращает STATUS_SUCCESS об успешном выполнении или один из следующих кодов ошибок при сбое:

Код возврата Описание
STATUS_CANCELLED
Элемент Flags структуры RX_CONTEXT указывает, что IRP был отменен.
STATUS_CONNECTION_IN_USE
Подключение по-прежнему используется.
STATUS_FILES_OPEN
Файл был открыт, поэтому удаленное подключение не должно быть удалено.
STATUS_LOCK_NOT_GRANTED
Монопольная блокировка связанного объекта

Комментарии

RxFinalizeConnection обычно вызывается драйвером сетевого мини-перенаправления в ответ на получение пользовательского запроса IOCTL из пользовательского режима. Например, пользователь может выполнить из командной строки "NET USE x: /d", чтобы удалить общую папку. Этот запрос будет сопоставлен с помощью библиотеки DLL поставщика сети, предоставленной мини-перенаправлением сети, с пользовательским запросом IOCTL, отправленным драйверу ядра сетевого мини-перенаправления, который вызывает подпрограмму RxFinalizeConnection для удаления подключения.

RxFinalizeConnection отменяет все невыполненные запросы для данной структуры V_NET_ROOT. Эти V_NET_ROOT структуры создаются и удаляются независимо от файлов, которые открываются и обрабатываются с ними. Поэтому при попытке удаления необходимо отменить все невыполненные запросы.

Требования

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

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

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

Структура NET_ROOT

Структура V_NET_ROOT