Função FsRtlFindInTunnelCache (ntifs.h)
O FsRtlFindInTunnelCache pesquisa uma entrada correspondente no cache do túnel que corresponde 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 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 do 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 8.3 completo. (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 o 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 Data. Na saída, a mesma variável recebe o comprimento em bytes dos dados gravados no buffer.
[out] Data
Ponteiro para um buffer alocado por chamador para receber os dados encontrados no cache do túnel.
Valor de retorno
FsRtlFindInTunnelCache retornará TRUE se uma entrada correspondente for encontrada no cache do túnel, caso contrário, FALSE.
Observações
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 pesquisa no cache do túnel uma entrada que corresponda 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 foi definido como TRUE na chamada para FsRtlAddToTunnelCache, a cadeia de caracteres apontada por Name será comparada com o nome curto do arquivo túnel. Caso contrário, ele será comparado com o nome longo.
O valor da variável de comprimento do buffer apontado 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 |
---|---|
da Plataforma de Destino |
Universal |
cabeçalho | ntifs.h (inclua Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |
IRQL | <= APC_LEVEL |