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 루틴의 동작을 제어하는 플래그입니다. 플래그는 다음 값 중 하나일 수 있습니다.
- 사실
- 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을 통해 RxFinalizeConnection 루틴을 호출하여 연결을 삭제하는 네트워크 미니 리렉터 커널 드라이버로 전송된 사용자 지정 IOCTL 요청에 매핑됩니다.
RxFinalizeConnection 은 지정된 V_NET_ROOT 구조체에 대한 모든 미해결 요청을 취소합니다. 이러한 V_NET_ROOT 구조체는 해당 구조체에서 열리고 조작된 파일과 독립적으로 만들어지고 삭제됩니다. 따라서 삭제 작업을 시도할 때 모든 미해결 요청이 취소되어야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | rxprocs.h(Rxprocs.h 포함) |
IRQL | <= APC_LEVEL |