Função FsRtlFindInTunnelCache (ntifs.h)

A rotina FsRtlFindInTunnelCache procura uma entrada correspondente no cache de túnel que corresponda ao nome especificado.

Sintaxe

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
);

Parâmetros

[in] Cache

Ponteiro para um cache de túnel inicializado por FsRtlInitializeTunnelCache.

DirectoryKey

Valor de chave do diretório que contém o arquivo que está sendo criado ou renomeado.

[in] Name

Ponteiro para uma cadeia de caracteres Unicode que contém o novo nome para o arquivo que está sendo renomeado ou criado.

[out] ShortName

Ponteiro para uma cadeia de caracteres Unicode alocada pelo chamador para receber o nome curto do arquivo em túnel. Essa cadeia de caracteres deve ser longa o suficiente para conter um nome de arquivo completo 8.3. (Ao contrário de LongName, ShortName não é cultivado dinamicamente.)

[out] LongName

Ponteiro para uma cadeia de caracteres Unicode alocada pelo chamador para receber o nome longo do arquivo em túnel. Se essa cadeia de caracteres não for grande o suficiente para manter o nome em túnel, FsRtlFindInTunnelCache a substituirá por uma cadeia de caracteres maior alocada pelo sistema. Se essa cadeia de caracteres for alocada, o chamador será responsável por detectar esse caso e liberar a nova cadeia de caracteres alocada pelo sistema, bem como a cadeia de caracteres original alocada pelo chamador.

[in, out] DataLength

Na entrada, esse é um ponteiro para uma variável que especifica o comprimento do buffer apontado por Dados. Na saída, a mesma variável recebe o comprimento em bytes dos dados gravados no buffer.

[out] Data

Ponteiro para um buffer alocado pelo chamador para receber os dados encontrados no cache do túnel.

Retornar valor

FsRtlFindInTunnelCache retornará TRUE se uma entrada correspondente for encontrada no cache do túnel; caso contrário, FALSE.

Comentários

Os sistemas de arquivos podem chamar FsRtlFindInTunnelCache quando um nome de arquivo é adicionado a um diretório para um arquivo que está sendo criado ou renomeado. FsRtlFindInTunnelCache procura no cache do túnel uma entrada que corresponda a DirKey e Name. Se um for encontrado, FsRtlFindInTunnelCache buscará as informações armazenadas em cache.

A correspondência é executada da seguinte maneira:

  • O valor de DirKey é comparado com a chave de diretório da entrada. (Este é o valor directoryKey que foi passado para FsRtlAddToTunnelCache.)

  • Se KeyByShortName tiver sido definido como TRUE na chamada para FsRtlAddToTunnelCache, a cadeia de caracteres apontada por Name será comparada com o nome curto do arquivo em túnel. Caso contrário, ele será comparado com o nome longo.

O valor da variável de comprimento do buffer apontada por DataLength deve ser maior ou igual ao comprimento em bytes dos dados armazenados na entrada de cache do túnel.

O chamador é necessário para sincronizar essa chamada com FsRtlDeleteTunnelCache. Em outras palavras, um sistema de arquivos deve garantir que ele não chame FsRtlFindInTunnelCache e FsRtlDeleteTunnelCache ao mesmo tempo de threads diferentes.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Confira também

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING