다음을 통해 공유


NET_ROOT 구조체

NET_ROOT 순 루트 구조에는 네트워크 미니 리다이렉터에서 유지 관리하는 각 특정 네트워크 서버\공유 연결에 대한 정보가 포함됩니다.

NET_ROOT RDBSS 및 네트워크 미니 리디렉션기 드라이버가 서버가 아닌 처리하려는 것입니다. 따라서 RDBSS는 일반적으로 NET_ROOT 구조를 만들고 열고 서버 열기를 담당하는 네트워크 미니 리디렉션기 드라이버를 호출합니다. 네트워크 미니 리 디렉터 드라이버는 전달된 NET_ROOT 구조에서 적절한 필드를 채울 것으로 예상됩니다.

NET_ROOT 구조의 목록은 각 SRV_CALL 대해 RDBSS에서 유지 관리됩니다. 각 NET_ROOT 구조에는 다른 RDBSS 구조와 공통적인 몇 가지 요소와 NET_ROOT 구조체에 고유한 요소가 있습니다. NET_ROOT 구조를 관리하는 RDBSS 루틴은 다음 요소만 수정합니다.

  • 서명 및 참조 수

  • 이름 및 연결된 테이블 정보

  • 연결된 SRV_CALL 구조체에 대한 백 포인터

  • 다양한 하위 구조에 대한 크기 정보

  • 연결된 FCB 구조체의 조회 테이블

  • 네트워크 미니 리다이렉터(또는 NET_ROOT 데이터 구조의 작성자)가 요청하는 추가 스토리지

NET_ROOT 구조체에는 IRP 처리를 다시 시작하기 전에 NET_ROOT 전환이 완료되기를 기다리는 RX_CONTEXT 구조 목록도 포함되어 있습니다. 이는 일반적으로 동시 요청이 서버로 전달될 때 발생합니다. 이러한 요청 중 하나는 다른 요청이 큐에 대기하는 동안 시작됩니다. 네트워크 미니 리다이렉터에서 사용하도록 예약된 추가 공간은 알려진 NET_ROOT 데이터 구조의 끝에서 시작되므로 네트워크 미니 리디렉션자는 포함 파일의 컨텍스트 필드를 사용하여 이 추가 공간을 참조할 수 있습니다.

NET_ROOT 구조체의 종료는 다음 두 부분으로 구성됩니다.

  1. 모든 V_NET_ROOTS 연결을 삭제합니다.

  2. 메모리 해제

이러한 두 작업 사이에 지연이 있을 수 있으며 NET_ROOT 구조의 필드는 첫 번째 단계가 중복되지 않도록 합니다.