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


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

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

Синтаксис

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

Параметры

NetRoot

[in, out] Указатель на завершенную структуру NET_ROOT.

VNetRoot

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

ForceFilesClosed

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

TRUE

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

FALSE

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

0xff

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

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

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

Возвращаемый код Описание
STATUS_CANCELLED
Флаги член структуры 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 (include 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