共用方式為


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 要求是否來自內核模式驅動程式或使用者模式元件, (應用程式或使用者模式驅動程式) 。

Syntax

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