Функция 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, если экземпляра
[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 |
См. также
контекст отслеживания Per-File в устаревшем драйвере фильтра файловой системы