FsRtlFindInTunnelCache 함수(ntifs.h)

FsRtlFindInTunnelCache 루틴은 터널 캐시에서 지정된 이름과 일치하는 항목을 검색합니다.

구문

BOOLEAN FsRtlFindInTunnelCache(
  [in]      TUNNEL         *Cache,
            ULONGLONG      DirectoryKey,
  [in]      UNICODE_STRING *Name,
  [out]     UNICODE_STRING *ShortName,
  [out]     UNICODE_STRING *LongName,
  [in, out] ULONG          *DataLength,
  [out]     VOID           *Data
);

매개 변수

[in] Cache

FsRtlInitializeTunnelCache로 초기화된 터널 캐시에 대한 포인터입니다.

DirectoryKey

만들거나 이름을 바꿀 파일이 포함된 디렉터리의 키 값입니다.

[in] Name

이름을 바꾸거나 만들 파일의 새 이름을 포함하는 유니코드 문자열에 대한 포인터입니다.

[out] ShortName

터널링된 파일의 짧은 이름을 수신하기 위해 호출자가 할당한 유니코드 문자열에 대한 포인터입니다. 이 문자열은 전체 8.3 파일 이름을 보유할 수 있을 만큼 길어야 합니다. LongName과 달리 ShortName은 동적으로 성장하지 않습니다.

[out] LongName

터널링된 파일의 긴 이름을 수신하는 호출자가 할당한 유니코드 문자열에 대한 포인터입니다. 이 문자열이 터널링된 이름을 보유할 만큼 크지 않은 경우 FsRtlFindInTunnelCache 는 이를 더 큰 시스템 할당 문자열로 바꿉니다. 이러한 문자열이 할당된 경우 호출자는 이 사례를 검색하고 시스템이 할당한 새 문자열과 원래 호출자가 할당한 문자열을 해제합니다.

[in, out] DataLength

입력 시 데이터가 가리키는 버퍼의 길이를 지정하는 변수에 대한 포인터입니다. 출력 시 동일한 변수는 버퍼에 기록된 데이터의 길이(바이트)를 받습니다.

[out] Data

터널 캐시에 있는 데이터를 수신하기 위해 호출자가 할당한 버퍼에 대한 포인터입니다.

반환 값

FsRtlFindInTunnelCache 는 터널 캐시에 일치하는 항목이 있으면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

설명

파일 시스템은 만들거나 이름을 바꿀 파일의 디렉터리에 파일 이름이 추가될 때 FsRtlFindInTunnelCache 를 호출할 수 있습니다. FsRtlFindInTunnelCache 는 터널 캐시에서 DirKey이름과 일치하는 항목을 검색합니다. FsRtlFindInTunnelCache가 있으면 캐시된 정보를 가져옵니다.

일치는 다음과 같이 수행됩니다.

  • DirKey 값은 항목의 디렉터리 키와 비교됩니다. FsRtlAddToTunnelCache에 전달된 DirectoryKey 값입니다.

  • FsRtlAddToTunnelCache 호출에서 KeyByShortName이 TRUE로 설정된 경우 Name이 가리키는 문자열이 터널링된 파일의 짧은 이름과 비교됩니다. 그렇지 않으면 긴 이름과 비교됩니다.

DataLength가 가리키는 버퍼 길이 변수의 값은 터널 캐시 항목에 저장된 데이터의 길이(바이트)보다 크거나 같아야 합니다.

호출자는 이 호출을 FsRtlDeleteTunnelCache와 동기화해야 합니다. 즉, 파일 시스템은 서로 다른 스레드에서 동시에 FsRtlFindInTunnelCacheFsRtlDeleteTunnelCache 를 호출하지 않도록 해야 합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

추가 정보

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING