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


Функция FltIs32bitProcess (fltkernel.h)

Подпрограмма FltIs32bitProcess проверяет, является ли инициатор текущей операции ввода-вывода 32-разрядным приложением пользовательского режима.

Синтаксис

BOOLEAN FLTAPI FltIs32bitProcess(
  [in, optional] PFLT_CALLBACK_DATA CallbackData
);

Параметры

[in, optional] CallbackData

Указатель на структуру данных обратного вызова для текущей операции ввода-вывода (FLT_CALLBACK_DATA). Этот параметр является необязательным и может иметь значение NULL.

Возвращаемое значение

FltIs32bitProcess возвращает значение TRUE , если инициатором текущей операции ввода-вывода является 32-разрядный процесс пользовательского режима, в противном случае false .

Комментарии

Драйверы минифильтра вызывают FltIs32bitProcess , чтобы определить, будет ли запрос ввода-вывода содержать элементы данных, которые необходимо преобразовать или "thunked", прежде чем их можно будет использовать в 64-разрядном драйвере. Дополнительные сведения о thunking и других проблемах с 64-разрядными драйверами см. в разделе Проблемы программирования для 64-разрядных драйверов.

В 32-разрядной системе FltIs32bitProcess всегда возвращает значение TRUE.

В 64-разрядной системе FltIs32bitProcess возвращает значение TRUE или FALSE в соответствии со следующими условиями:

  • Если параметр CallbackData имеет значение NULL и вызывающий объект выполняется в контексте 32-разрядного процесса в пользовательском режиме, FltIs32bitProcess возвращает значение TRUE.

  • Если параметр CallbackData не равен NULL, а структура данных обратного вызова представляет операцию ввода-вывода на основе IRP, при которой IRP был выдан диспетчером операций ввода-вывода от имени процесса пользовательского режима, FltIs32bitProcess возвращает значение TRUE.

  • Если параметр CallbackData не равен NULL, структура данных обратного вызова представляет собой операцию быстрого ввода-вывода или операцию обратного вызова фильтра файловой системы (FSFilter), а вызывающий объект выполняется в контексте 32-разрядного процесса в пользовательском режиме, FltIs32bitProcess возвращает значение TRUE.

  • Если ни одно из указанных выше условий не выполняется, FltIs32bitProcess возвращает значение FALSE.

Чтобы определить, представляет ли структура данных обратного вызова операцию ввода-вывода на основе IRP, используйте макрос FLT_IS_IRP_OPERATION .

Чтобы определить, представляет ли структура данных обратного вызова быструю операцию ввода-вывода, используйте макрос FLT_IS_FASTIO_OPERATION .

Чтобы определить, представляет ли структура данных обратного вызова операцию обратного вызова фильтра файловой системы (FSFilter), используйте макрос FLT_IS_FS_FILTER_OPERATION .

Требования

Требование Значение
Минимальная версия клиента Microsoft Windows XP с пакетом обновления 2
Минимальная версия сервера Microsoft Windows Server 2003 с пакетом обновления 1 (SP1)
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

См. также раздел

FLT_CALLBACK_DATA

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

IoIs32bitProcess