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


Функция 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.

Если параметр OldContextNULL для входных данных и найден контекст соответствующего файла, FltDeleteFileContext освобождает ссылку, добавленную предыдущим вызовом драйвера минифильтра FltSetFileContext. Удаленный контекст обычно освобождается немедленно, если в нем нет выдающейся ссылки (например, поскольку контекст по-прежнему используется другим потоком).

Если параметр OldContext не NULL и возвращается соответствующий контекст файла, вызывающий объект отвечает за освобождение ссылки, добавленной FltSetFileContext. Чтобы выпустить эту ссылку, драйвер минифильтра должен вызывать FltReleaseContext в контексте удаленного файла как можно скорее после выполнения любой необходимой очистки.

Чтобы выделить новый контекст, вызовите FltAllocateContext.

Чтобы определить, поддерживаются ли контексты файлов для данного файла, вызовите FltSupportsFileContexts или FltSupportsFileContextsEx.

Требования

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

См. также

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx