접두사 테이블 관리
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 |
---|---|
이 루틴은 SRV_CALL 및 NET_ROOT 이름을 카탈로그하는 데 사용되는 접두사 테이블에 대한 배타적 잠금을 획득합니다. 이 루틴은 Windows XP 및 Windows 2000에서만 사용할 수 있습니다. 이 루틴은 RDBSS에서 내부적으로 사용되며 네트워크 미니 리다이렉터에서 사용하면 안 됩니다. |
|
이 루틴은 SRV_CALL 및 NET_ROOT 이름을 카탈로그하는 데 사용되는 접두사 테이블에 대한 공유 잠금을 획득합니다. 이 루틴은 Windows XP 및 Windows 2000에서만 사용할 수 있습니다. 이 루틴은 RDBSS에서 내부적으로 사용되며 네트워크 미니 리다이렉터에서 사용하면 안 됩니다. |
|
루틴은 SRV_CALL 카탈로그화하고 이름을 NET_ROOT 데 사용되는 접두사 테이블에서 이름을 조회하고 기본 포인터에서 포함하는 구조체로 변환합니다. |
|
이 루틴은 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) |
이 매크로는 접두사 테이블 잠금을 해제합니다. |