Функция FltGetContexts (fltkernel.h)
Подпрограмма FltGetContexts извлекает контексты драйвера минифильтра для объектов, связанных с текущей операцией.
Синтаксис
VOID FLTAPI FltGetContexts(
PCFLT_RELATED_OBJECTS FltObjects,
FLT_CONTEXT_TYPE DesiredContexts,
PFLT_RELATED_CONTEXTS Contexts
);
Параметры
FltObjects
[in] Указатель на структуру FLT_RELATED_OBJECTS , содержащую непрозрачные указатели для объектов, связанных с текущей операцией. Дополнительные сведения об этом параметре см. в разделе Примечания.
DesiredContexts
[in] Определяет типы контекстов для извлечения. Этот параметр может быть битовой ИЛИ следующих значений.
Константа | Значение |
---|---|
FLT_VOLUME_CONTEXT | 0x0001 |
FLT_INSTANCE_CONTEXT | 0x0002 |
FLT_FILE_CONTEXT | 0x0004 |
FLT_STREAM_CONTEXT | 0x0008 |
FLT_STREAMHANDLE_CONTEXT | 0x0010 |
FLT_TRANSACTION_CONTEXT | 0x0020 |
FLT_SECTION_CONTEXT (начиная с Windows 8) | 020040 |
FLT_ALL_CONTEXTS | Побитовое ИЛИ всех значений контекста |
Contexts
[out] Указатель на структуру FLT_RELATED_CONTEXTS , выделенную вызывающим объектом, которая получает запрошенные контексты. Этот параметр является обязательным и не может иметь значение NULL. FltMgr задает элемент структуры равным нулю для:
- Контексты, которые вызывающий объект не запрашивал.
- Контексты, которые запрашивал вызывающий объект, но FltMgr не удалось найти.
Возвращаемое значение
Нет.
Remarks
Дополнительные сведения о контекстах см. в разделе О контекстах минифильтра.
Драйвер минифильтра вызывает FltGetContexts для получения указателей на контексты драйвера минифильтра для объектов в FLT_RELATED_OBJECTS структуре.
Следующие типы подпрограмм обратного вызова драйвера минифильтра получают указатель на структуру FLT_RELATED_OBJECTS в качестве входного параметра FltObjects :
- PFLT_PRE_OPERATION_CALLBACK
- PFLT_POST_OPERATION_CALLBACK
- PFLT_INSTANCE_SETUP_CALLBACK
- PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
- PFLT_INSTANCE_TEARDOWN_CALLBACK
FltGetContexts увеличивает количество ссылок для каждого контекста, возвращаемого в структуре FLT_RELATED_CONTEXTS , на которую указывает параметр Contexts . Таким образом, для каждого успешного вызова FltGetContexts вызывающий объект должен:
- Вызовите FltReleaseContexts для всей структуры, на которую указывает параметр Contexts .
- Вызовите Метод FltReleaseContext для каждого контекста, возвращаемого в структуре, и задайте для каждого поля контекста, возвращаемого в структуре, равным нулю.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
Библиотека | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |
См. также раздел
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK