Метод IWDFIoRequest2::GetRequestorMode (wudfddi.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с помощью UMDF.]
Метод GetRequestorMode указывает, поступил ли запрос ввода-вывода из драйвера режима ядра или компонента пользовательского режима (приложения или драйвера пользовательского режима).
Синтаксис
WDF_KPROCESSOR_MODE GetRequestorMode();
Возвращаемое значение
GetRequestorMode возвращает WDF_KPROCESSOR_MODE типизированное значение, указывающее, поступил ли текущий запрос ввода-вывода от драйвера режима ядра или компонента пользовательского режима.
Комментарии
Драйвер на основе UMDF может получать запрос ввода-вывода от драйвера режима ядра, только если драйвер на основе UMDF поддерживает клиентов в режиме ядра.
Если GetRequestorMode возвращает WdfUserMode, драйвер может вызвать IWDFIoRequest2::IsFromUserModeDriver , чтобы определить, поступил ли запрос ввода-вывода из приложения или драйвера пользовательского режима.
Примеры
В следующем примере кода показано, как функция обратного вызова IQueueCallbackWrite::OnWrite может определить, является ли запрос ввода-вывода из режима ядра или пользовательского режима. Если запрос получен из пользовательского режима, в примере определяется, является ли запрос из приложения или другого драйвера пользовательского режима.
VOID
STDMETHODCALLTYPE
CMyQueue::OnWrite(
__in IWDFIoQueue *pWdfQueue,
__in IWDFIoRequest *pWdfRequest,
__in SIZE_T BytesToWrite
)
{
WDF_KPROCESSOR_MODE processorMode;
BOOL fromApp = FALSE;
//
// Declare an IWDFIoRequest2 interface pointer and obtain the
// IWDFIoRequest2 interface from the IWDFIoRequest interface.
//
CComQIPtr<IWDFIoRequest2> r2 = pWdfRequest;
processorMode = r2->GetRequestorMode();
if (processorMode == WdfUserMode)
{
fromApp = r2->IsFromUserModeDriver();
}
...
}
Требования
Требование | Значение |
---|---|
Дата окончания поддержки | Недоступно в UMDF 2.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Минимальная версия UMDF | 1,9 |
Верхняя часть | wudfddi.h (включая Wudfddi.h) |
DLL | WUDFx.dll |