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

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

Синтаксис

NTSTATUS FsRtlInsertPerFileObjectContext(
  [in] PFILE_OBJECT                  FileObject,
  [in] PFSRTL_PER_FILEOBJECT_CONTEXT Ptr
);

Параметры

[in] FileObject

Указатель на объект файла, с которым необходимо связать контекстную информацию (заданную параметром Ptr ).

[in] Ptr

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

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

FsRtlInsertPerFileObjectContext возвращает соответствующее значение NTSTATUS, например одно из следующих значений:

Код возврата Описание
STATUS_SUCCESS
Структура контекстных сведений была успешно связана с объектом файла.
STATUS_INVALID_PARAMETER
Параметр FileObject имеет значение NULL.
STATUS_INSUFFICIENT_RESOURCES
Системе не хватает ресурсов для завершения операции. Например, расширение объекта файла не может быть выделено для FileObject.

Комментарии

Драйвер фильтра файловой системы вызывает FsRtlInsertPerFileObjectContext , чтобы связать собственную контекстную структуру отдельных файловых объектов с объектом файла. Структура контекста содержит сведения о контексте, которые драйвер фильтра сохраняет для объекта файла. Функция FsRtlInsertPerStreamContext вставляет структуру контекста Ptr в список контекстов для FileObject.

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

После того как структура FSRTL_PER_FILEOBJECT_CONTEXT или определяемая фильтром структура контекста для каждого файла (содержащая инициализированную структуру FSRTL_PER_FILEOBJECT_CONTEXT) была связана с объектом файла, ее можно получить, вызвав FsRtlLookupPerFileObjectContext или удалить, вызвав 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

FsRtlLookupPerFileObjectContext

FsRtlRemovePerFileObjectContext