Compartir a través de


Función FsRtlFindInTunnelCache (ntifs.h)

La rutina FsRtlFindInTunnelCache busca una entrada coincidente en la caché del túnel que coincida con el nombre especificado.

Sintaxis

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

Puntero a una caché de túnel inicializada por FsRtlInitializeTunnelCache.

DirectoryKey

Valor de clave del directorio que contiene el archivo que se va a crear o cambiar el nombre.

[in] Name

Puntero a una cadena Unicode que contiene el nuevo nombre del archivo cuyo nombre se va a cambiar o crear.

[out] ShortName

Puntero a una cadena Unicode asignada por el autor de la llamada para recibir el nombre corto del archivo tunelizado. Esta cadena debe ser lo suficientemente larga como para contener un nombre de archivo completo 8.3. (A diferencia de LongName, ShortName no se crece dinámicamente).

[out] LongName

Puntero a una cadena Unicode asignada por el autor de la llamada para recibir el nombre largo del archivo tunelizado. Si esta cadena no es lo suficientemente grande como para contener el nombre tunelizado, FsRtlFindInTunnelCache lo reemplaza por una cadena asignada por el sistema más grande. Si se asigna dicha cadena, el autor de la llamada es responsable de detectar este caso y liberar la nueva cadena asignada por el sistema, así como la cadena asignada por el autor de la llamada original.

[in, out] DataLength

En la entrada, se trata de un puntero a una variable que especifica la longitud del búfer al que apunta Data. En la salida, la misma variable recibe la longitud en bytes de los datos escritos en el búfer.

[out] Data

Puntero a un búfer asignado por el autor de la llamada para recibir los datos encontrados en la caché del túnel.

Valor devuelto

FsRtlFindInTunnelCache devuelve TRUE si se encuentra una entrada coincidente en la caché del túnel; de lo contrario, FALSE.

Observaciones

Los sistemas de archivos pueden llamar a FsRtlFindInTunnelCache cuando se agrega un nombre de archivo a un directorio para un archivo que se va a crear o cambiar de nombre. FsRtlFindInTunnelCache busca en la caché del túnel una entrada que coincida con DirKey y Name. Si se encuentra uno, FsRtlFindInTunnelCache captura la información almacenada en caché.

La coincidencia se realiza de la siguiente manera:

  • El valor de DirKey se compara con la clave de directorio de la entrada. (Este es el valor de directoryKey que se pasó a FsRtlAddToTunnelCache).

  • Si KeyByShortName se estableció en TRUE en la llamada a FsRtlAddToTunnelCache, la cadena a la que apunta Nombre se compara con el nombre corto del archivo tunelizado. De lo contrario, se compara con el nombre largo.

El valor de la variable de longitud del búfer a la que apunta dataLength debe ser mayor o igual que la longitud en bytes de los datos almacenados en la entrada de caché del túnel.

El autor de la llamada es necesario para sincronizar esta llamada con FsRtlDeleteTunnelCache. Es decir, un sistema de archivos debe asegurarse de que no llama a FsRtlFindInTunnelCache y FsRtlDeleteTunnelCache al mismo tiempo desde subprocesos diferentes.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL <= APC_LEVEL

Consulte también

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING