Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма 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 (include Fltkernel.h) |
| библиотеки | FltMgr.lib |
| DLL | Fltmgr.sys |
| IRQL | <= APC_LEVEL |
См. также
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK