Функция FltGetContextsEx (fltkernel.h)
Подпрограмма FltGetContextsEx извлекает контексты драйвера минифильтра для объектов, связанных с текущей операцией.
Синтаксис
NTSTATUS FLTAPI FltGetContextsEx(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] FLT_CONTEXT_TYPE DesiredContexts,
[in] SIZE_T ContextsSize,
[out] PFLT_RELATED_CONTEXTS_EX Contexts
);
Параметры
[in] FltObjects
Указатель на структуру FLT_RELATED_OBJECTS , содержащую непрозрачные указатели для объектов, связанных с текущей операцией. Дополнительные сведения см. в разделе "Примечания".
[in] DesiredContexts
Определяет типы контекстов для извлечения. Этот параметр может быть битовой ИЛИ следующих значений.
Константа | Значение |
---|---|
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 | 020040 |
FLT_ALL_CONTEXTS | Побитовое ИЛИ всех значений контекста |
[in] ContextsSize
Размер (в байтах) структуры FLT_RELATED_CONTEXTS_EX , на которую указывает Контексты. Задайте для параметра sizeof(FLT_RELATED_CONTEXTS_EX).
[out] Contexts
Указатель на структуру FLT_RELATED_CONTEXTS , выделенную вызывающим объектом, которая получает запрошенные контексты. Этот параметр является обязательным и не может иметь значение NULL. FltMgr задает элемент структуры равным нулю для:
- Контексты, которые вызывающий объект не запрашивал.
- Контексты, которые запрашивал вызывающий объект, но FltMgr не удалось найти.
Возвращаемое значение
Функция FltGetContextsEx возвращает STATUS_SUCCESS после успешного завершения. В противном случае возвращается код состояния, например один из следующих.
Код | Значение |
---|---|
STATUS_INVALID_PARAMETER | Введено недопустимое значение контекста. |
Комментарии
Дополнительные сведения о контекстах см. в разделе О контекстах минифильтра.
Драйвер минифильтра вызывает FltGetContextsEx для получения указателей на его контексты для объектов в FLT_RELATED_OBJECTS структуре. На STATUS_SUCCESS перед использованием минифильтр должен проверка, что контекст не равен нулю.
Следующие типы подпрограмм обратного вызова драйвера минифильтра получают указатель на структуру 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
FltGetContextsEx увеличивает количество ссылок для каждого контекста, возвращаемого в структуре FLT_RELATED_CONTEXTS_EX , на которую указывает параметр Contexts . Таким образом, для каждого успешного вызова FltGetContextsEx вызывающий объект должен:
- Вызовите FltReleaseContextsEx для всей структуры, на которую указывает параметр Contexts .
- Вызовите Метод FltReleaseContext для каждого контекста, возвращаемого в структуре, и задайте для каждого поля контекста, возвращаемого в структуре, равным нулю.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 |
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
Библиотека | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |
См. также раздел
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK