Функция WdfRequestIsFrom32BitProcess (wdfrequest.h)
[Относится к KMDF и UMDF]
Метод WdfRequestIsFrom32BitProcess проверяет, является ли инициатор указанного запроса ввода-вывода 32-разрядным приложением пользовательского режима.
Синтаксис
BOOLEAN WdfRequestIsFrom32BitProcess(
[in] WDFREQUEST Request
);
Параметры
[in] Request
Дескриптор объекта запроса платформы.
Возвращаемое значение
В 64-разрядных системах WdfRequestIsFrom32BitProcess возвращает значение TRUE , если инициатором текущего запроса ввода-вывода является 32-разрядный процесс в пользовательском режиме, в противном случае — FALSE . В 32-разрядных системах WdfRequestIsFrom32BitProcess всегда возвращает значение TRUE.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Драйверы могут вызывать WdfRequestIsFrom32BitProcess , чтобы определить, будет ли запрос ввода-вывода содержать элементы данных, которые необходимо преобразовать или отключить, прежде чем их можно будет использовать в 64-разрядном драйвере.
Указанный дескриптор запроса должен быть получен из одной из очередей ввода-вывода драйвера, а не из вызова WdfRequestCreate.
Примеры
В следующем примере кода определяется, поступил ли запрос ввода-вывода из 32-разрядного приложения.
VOID
MyEvtIoRead(
IN WDFQUEUE Queue,
IN WDFREQUEST Request,
IN size_t Length
)
{
...
if (WdfRequestIsFrom32BitProcess(Request)) {
//
// The driver is running on a 64-bit computer and the
// I/O request came from a 32-bit application.
//
...
}
...
}
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfrequest.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |