Skip to content

Latest commit

 

History

History
101 lines (79 loc) · 4.12 KB

nf-wudfddi-iwdfiorequest2-getrequestormode.md

File metadata and controls

101 lines (79 loc) · 4.12 KB
UID title description old-location tech.root ms.date keywords ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames f1_keywords topic_type api_type api_location api_name
NF:wudfddi.IWDFIoRequest2.GetRequestorMode
IWDFIoRequest2::GetRequestorMode (wudfddi.h)
The GetRequestorMode method indicates whether an I/O request came from a kernel-mode driver or a user-mode component (either an application or a user-mode driver).
wdf\iwdfiorequest2_getrequestormode.htm
wdf
02/26/2018
IWDFIoRequest2::GetRequestorMode
GetRequestorMode, GetRequestorMode method, GetRequestorMode method,IWDFIoRequest2 interface, IWDFIoRequest2 interface,GetRequestorMode method, IWDFIoRequest2.GetRequestorMode, IWDFIoRequest2::GetRequestorMode, UMDFRequestObjectRef_ab2c358c-de7c-4bc3-b0cf-a598a1c69bd1.xml, umdf.iwdfiorequest2_getrequestormode, wdf.iwdfiorequest2_getrequestormode, wudfddi/IWDFIoRequest2::GetRequestorMode
wudfddi.h
Wudfddi.h
Desktop
1.9
Unavailable in UMDF 2.0 and later.
WUDFx.dll
Windows
IWDFIoRequest2::GetRequestorMode
wudfddi/IWDFIoRequest2::GetRequestorMode
APIRef
kbSyntax
COM
WUDFx.dll
IWDFIoRequest2::GetRequestorMode

IWDFIoRequest2::GetRequestorMode

-description

[Warning: UMDF 2 is the latest version of UMDF and supersedes UMDF 1. All new UMDF drivers should be written using UMDF 2. No new features are being added to UMDF 1 and there is limited support for UMDF 1 on newer versions of Windows 10. Universal Windows drivers must use UMDF 2. For more info, see Getting Started with UMDF.]

The GetRequestorMode method indicates whether an I/O request came from a kernel-mode driver or a user-mode component (either an application or a user-mode driver).

-returns

GetRequestorMode returns a WDF_KPROCESSOR_MODE-typed value that indicates whether the current I/O request came from a kernel-mode driver or a user-mode component.

-remarks

A UMDF-based driver can receive an I/O request from a kernel-mode driver only if the UMDF-based driver supports kernel-mode clients.

If GetRequestorMode returns WdfUserMode, the driver can call IWDFIoRequest2::IsFromUserModeDriver to determine if the I/O request came from an application or a user-mode driver.

Examples

The following code example shows how an IQueueCallbackWrite::OnWrite callback function can determine whether an I/O request is from kernel mode or user mode. If the request is from user mode, the example determines whether the request is from an application or another user-mode driver.

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();
    }
...
}

-see-also

IWDFIoRequest2

IWDFIoRequest2::IsFromUserModeDriver