Функция 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 не удалось найти.
Возвращаемое значение
Никакой.
Замечания
Дополнительные сведения о контекстах см. в разделе О контекстах минифильтра.
Драйвер минифильтра вызывает 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, на которую указывает параметр контекстов . Таким образом, для каждого успешного вызова FltGetContextsвызывающий объект должен:
- Вызовите FltReleaseContexts для всей структуры, на которую указывает параметр Contexts.
- Вызов FltReleaseContext для каждого контекста, возвращаемого в структуре, и задайте для каждого поля контекста, возвращаемого в структуре, равное нулю.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |
См. также
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK