Поделиться через


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

Подпрограмма FsRtlRemovePerFileContext возвращает указатель на объект FSRTL_PER_FILE_CONTEXT, связанный с файлом. FsRtlRemovePerFileContext удаляет объект FSRTL_PER_FILE_CONTEXT из списка, который он занимает, а также связанные сведения о контексте драйвера.

Синтаксис

PFSRTL_PER_FILE_CONTEXT FsRtlRemovePerFileContext(
  [in]           PVOID *PerFileContextPointer,
  [in, optional] PVOID OwnerId,
  [in, optional] PVOID InstanceId
);

Параметры

[in] PerFileContextPointer

Указатель на непрозрачный указатель, используемый пакетом библиотеки среды выполнения файловой системы (FSRTL) для отслеживания контекстов файлов. Чтобы получить этот указатель из объекта файла, используйте макрос FsRtlGetPerFileContextPointer.

[in, optional] OwnerId

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

[in, optional] InstanceId

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

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

Указатель на первый FSRTL_PER_FILE_CONTEXT, соответствующий OwnerId и InstanceId, если задано. Если совпадение не найдено или если система не поддерживает сведения о контексте файла, эта подпрограмма возвращает значение NULL.

Замечания

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

Драйвер фильтра файловой системы должен освободить память, используемую для этой информации контекста после удаления FSRTL_PER_FILE_CONTEXT.

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

Не используйте эту подпрограмму внутри подпрограммы FreeCallback. Файловая система удаляет контексты из списка перед вызовом этой подпрограммы.

Не используйте эту подпрограмму внутри обработчика IRP_CLOSE. Вы не будете получать уведомления, когда поток отключается.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
целевая платформа Всеобщий
заголовка ntifs.h (include FltKernel.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

См. также

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

контекст отслеживания Per-File в устаревшем драйвере фильтра файловой системы