Функция FltDeleteFileContext (fltkernel.h)
Подпрограмма FltDeleteFileContext извлекает и удаляет контекст файла, заданный драйвером минифильтра для данного файла.
Синтаксис
NTSTATUS FLTAPI FltDeleteFileContext(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[out] PFLT_CONTEXT *OldContext
);
Параметры
[in] Instance
Указатель непрозрачного экземпляра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.
[in] FileObject
Указатель файлового объекта для файла. Этот параметр является обязательным и не может иметь значение NULL.
[out] OldContext
Указатель на переменную, выделенную вызывающим объектом, которая получает адрес удаленного контекста. Если соответствующий контекст не найден, эта переменная получает NULL_CONTEXT. Этот параметр является необязательным и может иметь значение NULL. Дополнительные сведения об этом параметре см. в следующем разделе Примечаний.
Возвращаемое значение
FltDeleteFileContext возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих значений:
Код возврата | Описание |
---|---|
STATUS_NOT_FOUND | Соответствующий контекст не найден. Это код ошибки. |
STATUS_NOT_SUPPORTED | Контексты файлов для этого файла не поддерживаются. Это код ошибки. |
Комментарии
Дополнительные сведения о контекстах см. в разделе О контекстах минифильтра.
Так как контексты считаются ссылочными, драйверу минифильтра обычно не требуется вызывать подпрограмму , например FltDeleteFileContext или FltDeleteContext , для явного удаления контекста.
Драйвер минифильтра вызывает FltDeleteFileContext , чтобы получить и удалить контекст файла, заданный ранее для файла, путем вызова Метода FltSetFileContext.
Если для входных данных параметр OldContext имеет значение NULL и найден соответствующий контекст файла, FltDeleteFileContext освобождает ссылку, добавленную предыдущим вызовом драйвера минифильтра к FltSetFileContext. Удаленный контекст обычно освобождается немедленно, если на него нет незавершенной ссылки (например, потому, что контекст по-прежнему используется другим потоком).
Если параметр OldContext не имеет значения NULL и найден и возвращается соответствующий контекст файла, вызывающий объект отвечает за освобождение ссылки, добавленной с помощью FltSetFileContext. Чтобы освободить эту ссылку, драйвер минифильтра должен как можно скорее вызвать FltReleaseContext в контексте удаленного файла после выполнения любой необходимой очистки.
Чтобы выделить новый контекст, вызовите FltAllocateContext.
Чтобы определить, поддерживаются ли контексты файлов для данного файла, вызовите FltSupportsFileContexts или FltSupportsFileContextsEx.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista и более поздних версий |
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
Библиотека | FltMgr.lib |
IRQL | <= APC_LEVEL |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по