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


Метод 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 (include Wudfddi.h)
DLL WUDFx.dll

См. также

IWDFIoRequest2

IWDFIoRequest2::IsFromUserModeDriver