Функция 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 и Name. Если он найден, FsRtlFindInTunnelCache извлекает кэшированные сведения.
Совпадение выполняется следующим образом:
Значение DirKey сравнивается с ключом каталога записи. (Это значение DirectoryKey, переданное FsRtlAddToTunnelCache.)
Если KeyByShortName было задано значение TRUE в вызове FsRtlAddToTunnelCache, строка, указываемая Name, сравнивается с коротким именем туннелированного файла. В противном случае оно сравнивается с длинным именем.
Значение переменной длины буфера, указываемой на DataLength, должно быть больше или равно длине в байтах данных, хранящихся в записи кэша туннеля.
Вызывающий объект требуется для синхронизации этого вызова с FsRtlDeleteTunnelCache. Другими словами, файловая система должна гарантировать, что она не вызывает FsRtlFindInTunnelCache и FsRtlDeleteTunnelCache одновременно из разных потоков.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | ntifs.h (include Ntifs.h) |
библиотеки |
NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |