Функция FsRtlLookupPerFileObjectContext (ntifs.h)

Для "устаревшего" драйвера фильтра файловой системы функция FsRtlLookupPerFileObjectContext извлекает сведения о контексте, ранее связанные с объектом файла.

Синтаксис

PFSRTL_PER_FILEOBJECT_CONTEXT FsRtlLookupPerFileObjectContext(
  [in]           PFILE_OBJECT FileObject,
  [in, optional] PVOID        OwnerId,
  [in, optional] PVOID        InstanceId
);

Параметры

[in] FileObject

Указатель на объект файла, для которого выполняется запрос контекстных сведений.

[in, optional] OwnerId

Указатель на переменную, выделенную вызывающим объектом, которая однозначно определяет фильтр владельцев структуры контекста для каждого файла и объекта. Формат этой переменной зависит от драйвера фильтра.

[in, optional] InstanceId

Указатель на переменную, выделенную вызывающим объектом, которую можно использовать для различения структур контекста отдельных файлов и объектов, созданных одним и тем же драйвером фильтра. Формат этой переменной зависит от драйвера фильтра. Этот параметр является необязательным и может иметь значение NULL.

Возвращаемое значение

FsRtlLookupPerFileObjectContext возвращает указатель на первый найденный контекст для каждого объекта файла. Если совпадение не найдено, функция FsRtlLookupPerFileObjectContext возвращает значение NULL.

Комментарии

"Устаревший" драйвер фильтра файловой системы вызывает FsRtlLookupPerFileObjectContext , чтобы получить структуру контекста для каждого объекта файла. Структура контекста содержит сведения о контексте, которые драйвер фильтра хранит для объекта файла. Эта структура контекста должна быть ранее связана с объектом файла путем вызова функции FsRtlInsertPerFileObjectContext .

Если структура FSRTL_PER_FILEOBJECT_CONTEXT внедрена в определенную фильтром структуру контекста для каждого файла и объекта, CONTAINING_RECORD макрос можно использовать для получения указателя на голову структуры, определенной фильтром.

Чтобы инициализировать структуру контекста для каждого файла и объекта, используйте макрос FsRtlInitPerFileObjectContext .

Чтобы связать инициализированную структуру контекста для каждого файла с объектом файла, используйте функцию FsRtlInsertPerFileObjectContext .

Чтобы удалить структуру контекста для каждого объекта файла, связанную с файловым объектом, используйте функцию FsRtlRemovePerFileObjectContext .

Примечание Драйверы минифильтров файловой системы не должны использовать функции FsRtlXxxPerFileObjectContext . Вместо этого минифильтры могут использовать функции контекста FltXxx для связывания контекстных сведений с объектом файла. Полный список см. в разделе FSRTL_PER_FILEOBJECT_CONTEXT .
 

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Fltkernel.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также раздел

FSRTL_PER_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlRemovePerFileObjectContext