IWDFIoRequest2::GetRequestorMode 方法 (wudfddi.h)

[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]

GetRequestorMode 方法指示 I/O 请求是来自内核模式驱动程序还是用户模式组件 (应用程序或用户模式驱动程序) 。

语法

WDF_KPROCESSOR_MODE GetRequestorMode();

返回值

GetRequestorMode 返回一个 WDF_KPROCESSOR_MODE类型的值,该值指示当前 I/O 请求是来自内核模式驱动程序还是用户模式组件。

注解

仅当基于 UMDF 的驱动程序支持内核模式客户端时,基于 UMDF 的驱动程序才能从 内核模式驱动程序接收 I/O 请求。

如果 GetRequestorMode 返回 WdfUserMode,驱动程序可以调用 IWDFIoRequest2::IsFromUserModeDriver 来确定 I/O 请求是来自应用程序还是用户模式驱动程序。

示例

下面的代码示例演示 IQueueCallbackWrite::OnWrite 回调函数如何确定 I/O 请求来自内核模式还是用户模式。 如果请求来自用户模式,则示例确定请求是来自应用程序还是另一个用户模式驱动程序。

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