Функция IoIs32bitProcess (wdm.h)
Программа IoIs32bitProcess проверяет, является ли отправитель текущего запроса ввода-вывода 32-разрядным приложением в режиме пользователя.
Синтаксис
BOOLEAN IoIs32bitProcess(
[in, optional] PIRP Irp
);
Параметры
[in, optional] Irp
Необязательный указатель на IRP, содержащий текущий запрос ввода-вывода. Обратите внимание, что это должен быть исходный IRP, выданный менеджером ввода-вывода. Если вызывающий объект является быстрой подпрограммой отправки ввода-вывода (и таким образом отсутствует IRP), вызывающий объект должен задать для этого параметра значение NULL.
Возвращаемое значение
IoIs32bitProcess возвращает TRUE, если инициатор текущего запроса ввода-вывода является 32-разрядным процессом пользовательского режима. В противном случае возвращается FALSE.
Замечания
Драйверы вызывают IoIs32bitProcess, чтобы определить, может ли запрос ввода-вывода содержать элементы данных, которые необходимо преобразовать или "thunked", прежде чем они могут использоваться в 64-разрядном драйвере.
Если параметр IrpNULL, а вызывающий объект выполняется в контексте процесса пользовательского режима, IoIs32bitProcess возвращает TRUE, если этот процесс является 32-разрядным процессом.
Если параметр Irp не NULL, он должен указывать на IRP, выданный диспетчером операций ввода-вывода от имени процесса пользовательского режима. IoIs32bitProcess нельзя использовать для проверки выделенных драйвером irPs. Предполагается, что выделенные драйверами IRPs, а также драйверы в режиме ядра, должны быть готовы к 64-разрядной версии.
Дополнительные сведения см. в разделе Проблемы программирования для 64-разрядных драйверов.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в 64-разрядных версиях Microsoft Windows XP и более поздних 64-разрядных версиях операционной системы Windows. |
целевая платформа | Всеобщий |
заголовка | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |