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 구조체의 Flags 멤버는 IRP가 취소되었음을 나타냅니다. |
|
연결은 여전히 사용 중입니다. |
|
파일이 열려 있으므로 원격 연결을 삭제해서는 안 됩니다. |
|
연결된 잠금에 대한 배타적 잠금 |
발언
RxFinalizeConnection 일반적으로 사용자 모드에서 사용자 지정 IOCTL 요청을 수신하는 응답으로 네트워크 미니 리디렉션기 드라이버에 의해 호출됩니다. 예를 들어 사용자는 명령줄에서 "NET USE x: /d"를 실행하여 공유를 삭제할 수 있습니다. 이 요청은 네트워크 미니 리디렉션자가 제공하는 네트워크 공급자 DLL을 통해 네트워크 미니 리디렉션자 커널 드라이버로 전송된 사용자 지정 IOCTL 요청에 매핑됩니다. 이 요청은 RxFinalizeConnection 루틴을 호출하여 연결을 삭제합니다.
RxFinalizeConnection 지정된 V_NET_ROOT 구조에 대한 미해결 요청을 모두 취소합니다. 이러한 V_NET_ROOT 구조체는 해당 구조체에서 열리고 조작된 파일과 관계없이 만들어지고 삭제됩니다. 따라서 삭제 작업을 시도할 때 모든 미해결 요청이 취소되어야 합니다.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 바탕 화면 |
헤더 | rxprocs.h(Rxprocs.h 포함) |
IRQL | <= APC_LEVEL |