RxPrefixTableLookupName 함수(prefix.h)

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

구문

PVOID RxPrefixTableLookupName(
  [in]  IN PRX_PREFIX_TABLE  ThisTable,
  [in]  IN PUNICODE_STRING   CanonicalName,
  [out] OUT PUNICODE_STRING  RemainingName,
        IN PRX_CONNECTION_ID ConnectionId
);

매개 변수

[in] ThisTable

볼 RX_PREFIX_TABLE 구조체에 대한 포인터입니다.

[in] CanonicalName

조회할 유니코드 문자열 이름에 대한 포인터입니다.

[out] RemainingName

일치하지 않는 이름 부분의 유니코드 문자열 이름에 대한 포인터입니다.

ConnectionId

사용할 RX_CONNECTION_ID 대한 포인터를 나타내는 선택적 매개 변수입니다.

반환 값

RxPrefixTableLookupName 은 일치 항목이 발견되면 발견된 노드에 대한 포인터를 반환합니다. 일치하는 항목이 없으면 RxPrefixTableLookupNameNULL 포인터를 반환합니다.

설명

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

  • RxpAcquirePrefixTableLockShared를 호출하여 공유 잠금을 획득합니다.
  • RxPrefixTableLookupName을 호출하여 이름을 조회합니다.
  • RxpReleasePrefixTableLock을 호출하여 공유 잠금을 해제합니다.
일치 항목이 발견되면 찾은 노드의 참조 수가 증가합니다.

확인된 빌드에서 RxPrefixTableLookupNameCanonicalName 문자열의 길이가 0보다 크지 않으면 시스템이 ASSERT로 설정됩니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 prefix.h(Prefix.h 포함)
IRQL <= APC_LEVEL

추가 정보

RxpAcquirePrefixTableLockExclusive

RxpAcquirePrefixTableLockShared

RxpReleasePrefixTableLock