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 |