Функция 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по