다음을 통해 공유


접두사 테이블 관리

RDBSS는 접두사 테이블을 사용하여 SRV_CALL, NET_ROOT 및 V_NET_ROOT 이름을 카탈로그화할 수 있는 데이터 구조를 정의합니다.

RDBSS에서 이름 관리의 현재 구현은 다음 구성 요소가 있는 테이블을 사용합니다.

  • 삽입된 이름의 큐

  • 버전 스탬프

  • 테이블 액세스를 제어하는 테이블 잠금 리소스

  • 이름 일치가 대/소문자를 구분하지 않는지 여부를 나타내는 값입니다.

  • 이 접두사 테이블에 대한 해시 값 항목의 버킷

테이블 잠금 리소스는 일반적인 방식으로 사용됩니다. 조회 작업에는 공유되며 변경 작업에만 사용됩니다.

버전 스탬프는 각 변경 내용에 따라 변경됩니다. 큐의 이유는 접두사 테이블 패키지를 사용하면 여러 호출자가 한 번에 열거할 수 있기 때문입니다. 삽입된 이름 및 버전 스탬프 큐를 사용하면 여러 호출자가 동시에 열거할 수 있습니다. 큐는 파일 이름에 대한 빠른 조회로 사용할 수 있지만 접두사 테이블은 확실히 NET_ROOT 구조에 대한 올바른 방법입니다.

이러한 접두사 테이블 관리 루틴은 이름을 클레임하거나 NET_ROOT 구조체에 대한 만들기 경로를 형성하기 위해 MUP의 호출에 대한 응답으로 RDBSS에서 내부적으로 사용됩니다. 이러한 RDBSS 접두사 테이블 관리 루틴은 테이블에 액세스하기 전에 적절한 잠금을 획득하고 작업이 완료되면 잠금이 해제되는 한 네트워크 미니 리디렉터에서도 사용할 수 있습니다. 드라이버의 일반적인 사용은 다음과 같습니다.

  • RxAcquirePrefixTableLockShared를 호출하여 공유 잠금을 획득합니다.

  • RxPrefixTableLookupName을 호출하여 이름을 조회합니다.

  • RxReleasePrefixTableLock을 호출하여 공유 잠금을 해제합니다.

특정 루틴은 Windows XP 및 이전 버전의 Windows에서만 구현됩니다. RxPrefixTableLookupName 은 모든 버전의 Windows에서 구현된 유일한 접두사 테이블 관리 루틴입니다.

RDBSS 접두사 테이블 관리 루틴에는 다음이 포함됩니다.

루틴에서 반환된 값 Description

RxpAcquirePrefixTableLockExclusive

이 루틴은 SRV_CALL 및 NET_ROOT 이름을 카탈로그하는 데 사용되는 접두사 테이블에 대한 배타적 잠금을 획득합니다.

이 루틴은 Windows XP 및 Windows 2000에서만 사용할 수 있습니다. 이 루틴은 RDBSS에서 내부적으로 사용되며 네트워크 미니 리다이렉터에서 사용하면 안 됩니다.

RxpAcquirePrefixTableLockShared

이 루틴은 SRV_CALL 및 NET_ROOT 이름을 카탈로그하는 데 사용되는 접두사 테이블에 대한 공유 잠금을 획득합니다.

이 루틴은 Windows XP 및 Windows 2000에서만 사용할 수 있습니다. 이 루틴은 RDBSS에서 내부적으로 사용되며 네트워크 미니 리다이렉터에서 사용하면 안 됩니다.

RxPrefixTableLookupName

루틴은 SRV_CALL 카탈로그화하고 이름을 NET_ROOT 데 사용되는 접두사 테이블에서 이름을 조회하고 기본 포인터에서 포함하는 구조체로 변환합니다.

RxpReleasePrefixTableLock

이 루틴은 SRV_CALL 및 NET_ROOT 이름을 카탈로그하는 데 사용되는 접두사 테이블에 대한 잠금을 해제합니다.

이 루틴은 Windows XP 및 Windows 2000에서만 사용할 수 있습니다. 이 루틴은 RDBSS에서 내부적으로 사용되며 네트워크 미니 리다이렉터에서 사용하면 안 됩니다.

Windows Server 2003부터 RxPrefixTableLookupName을 제외한 이전 표에 언급된 루틴이 매크로로 대체됩니다. 매개 변수 수가 적은 접두사 테이블 루틴을 호출하는 다음 매크로가 정의됩니다.

매크로 Description

RxAcquirePrefixTableLockExclusive (TABLE, WAIT)

이 매크로는 변경 작업에 대한 배타적 모드에서 접두사 테이블 잠금을 획득합니다.

RxAcquirePrefixTableLockShared (TABLE, WAIT)

이 매크로는 조회 작업을 위해 공유 모드에서 접두사 테이블 잠금을 획득합니다.

RxIsPrefixTableLockAcquired (TABLE)

이 매크로는 접두사 테이블 잠금이 배타적 또는 공유 모드에서 획득되었는지 여부를 나타냅니다.

RxIsPrefixTableLockExclusive (TABLE)

이 매크로는 접두사 테이블 잠금이 배타적 모드에서 획득되었는지를 나타냅니다.

RxReleasePrefixTableLock (TABLE)

이 매크로는 접두사 테이블 잠금을 해제합니다.