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


Метод 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

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

IWDFIoRequest2

IWDFIoRequest2::IsFromUserModeDriver