RxFinalizeVNetRoot 함수(fcb.h)
RxFinalizeVNetRoot 는 지정된 V_NET_ROOT 구조를 완료합니다. 호출자는 디바이스 개체와 연결된 netname 테이블에 대한 배타적 잠금이 있어야 합니다.
구문
BOOLEAN RxFinalizeVNetRoot(
[out] OUT PV_NET_ROOT ThisVNetRoot,
[in] IN BOOLEAN RecursiveFinalize,
[in] IN BOOLEAN ForceFinalize
);
매개 변수
[out] ThisVNetRoot
완료할 V_NET_ROOT 구조체에 대한 포인터입니다.
[in] RecursiveFinalize
재귀적으로 완료해야 하는지 여부를 나타내는 값입니다. 이 매개 변수는 현재 사용되지 않습니다.
[in] ForceFinalize
참조 수에 관계없이 종료를 강제 적용해야 하는지 여부를 나타내는 값입니다.
ForceFinalize가 FALSE이면 ThisVNetRoot가 가리키는 V_NET_ROOT 구조체의 NodeReferenceCount 멤버가 1이어야 V_NET_ROOT 완료됩니다.
반환 값
RxFinalizeVNetRoot 는 성공 시 TRUE 를 반환하고, 완료되지 않은 경우 FALSE 를 반환합니다.
설명
RxFinalizeVNetRoot 루틴은 일반적으로 네트워크 미니 리다이렉터 드라이버에서 직접 호출되지 않습니다. RDBSS는 V_NET_ROOT 대한 참조 수가 1로 감소할 때 내부적으로 이 루틴을 호출합니다.
RxFinalizeConnection에 대한 Level 매개 변수가 TRUE로 설정된 경우 RxFinalizeVNetRoot는 RxFinalizeConnection 루틴에서도 호출됩니다. RxFinalizeConnection 은 일반적으로 사용자 모드에서 사용자 지정 IOCTL 요청을 수신하는 것에 대한 응답으로 네트워크 미니 리렉터 드라이버에 의해 호출됩니다. 예를 들어 사용자는 명령줄에서 "NET USE x: /d"를 실행하여 공유를 삭제할 수 있습니다. 이 요청은 네트워크 미니 리 디렉터에서 제공하는 네트워크 공급자 DLL을 통해 RxFinalizeConnection 루틴을 호출하여 연결 및 연결된 모든 V_NET_ROOT 구조를 삭제하는 네트워크 미니 리 디렉터 커널 드라이버로 전송된 사용자 지정 IOCTL 요청에 매핑됩니다.
RxFinalizeVNetRoot 는 RxForceFinalizeAllVNetRoots 루틴에서 호출되어 NET_ROOT 구조와 연결된 각 V_NET_ROOT 마무리합니다.
RxFinalizeVNetRoot를 호출하기 전에 디바이스 개체와 연결된 netname 테이블에 대한 잠금을 배타적 모드로 획득해야 합니다.
V_NET_ROOT UpperFinalization 멤버가 0이면 RxFinalizeVNetRoot 는 이 V_NET_ROOT 연결된 NET_ROOT 속한 모든 FCB를 반복하고 V_NET_ROOT 연결된 모든 SRV_OPEN 구조를 분리합니다.
RxFinalizeVNetRoot 는 네트워크 미니 리다이렉터에서 제공하는 MRxFinalizeVNetRoot 루틴을 호출하여 V_NET_ROOT 구조체에 대한 메모리가 해제되기 전에 V_NET_ROOT 마무리합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | fcb.h(Mrxfcb.h, Fcb.h 포함) |
IRQL | <= APC_LEVEL |