Функция 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
- FALSE
- 0xff
RxFinalizeConnection успешно работает независимо от того, что даже если файлы-сироты и IRP_MN_NOTIFY_CHANGE_DIRECTORY запросы открыты. Параметр принудительно закрывает эти потерянные файлы.
RxFinalizeConnection завершается ошибкой, если открыты файлы или уведомления об изменениях.
RxFinalizeConnection удаляет дополнительную ссылку на структуру V_NET_ROOT из-за запроса на добавление подключения, но в противном случае действует как FALSE. RxFinalizeConnection завершается ошибкой, если открыты файлы или уведомления об изменениях.
Возвращаемое значение
RxFinalizeConnection возвращает STATUS_SUCCESS при успешном выполнении или одном из следующих кодов ошибок при сбое:
Возвращаемый код | Описание |
---|---|
|
Флаги член структуры RX_CONTEXT указывает, что IRP был отменен. |
|
Подключение по-прежнему используется. |
|
Файл был открыт, поэтому удаленное подключение не должно быть удалено. |
|
Монопольная блокировка связанного |
Замечания
RxFinalizeConnection обычно вызывается драйвером мини-перенаправления сети в ответ на получение пользовательского запроса IOCTL из пользовательского режима. Например, пользователь может выполнить из командной строки "NET USE x: /d", чтобы удалить общую папку. Этот запрос будет сопоставлен с библиотекой DLL поставщика сети, предоставленной мини-перенаправлением сети, с пользовательским запросом IOCTL, отправленным драйверу ядра мини-перенаправления сети, который вызовет RxFinalizeConnection подпрограмму для удаления подключения.
RxFinalizeConnection отменяет все невыполненные запросы для данной V_NET_ROOT структуры. Эти V_NET_ROOT структуры создаются и удаляются независимо от открытых и управляемых файлов. Поэтому при попытке удаления все невыполненные запросы отменяются.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | rxprocs.h (include Rxprocs.h) |
IRQL | <= APC_LEVEL |