[警告: 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 |