Compartir a través de


Método IWDFIoRequest2::GetRequestorMode (wudfddi.h)

[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.

El método GetRequestorMode indica si una solicitud de E/S procede de un controlador en modo kernel o un componente en modo de usuario (ya sea una aplicación o un controlador en modo de usuario).

Sintaxis

WDF_KPROCESSOR_MODE GetRequestorMode();

Valor devuelto

GetRequestorMode devuelve un valor con tipo WDF_KPROCESSOR_MODE que indica si la solicitud de E/S actual procede de un controlador en modo kernel o de un componente en modo de usuario.

Comentarios

Un controlador basado en UMDF puede recibir una solicitud de E/S de un controlador en modo kernel solo si el controlador basado en UMDF admite clientes en modo kernel.

Si GetRequestorMode devuelve WdfUserMode, el controlador puede llamar a IWDFIoRequest2::IsFromUserModeDriver para determinar si la solicitud de E/S procede de una aplicación o un controlador en modo de usuario.

Ejemplos

En el ejemplo de código siguiente se muestra cómo una función de devolución de llamada IQueueCallbackWrite::OnWrite puede determinar si una solicitud de E/S procede del modo kernel o del modo de usuario. Si la solicitud procede del modo de usuario, el ejemplo determina si la solicitud procede de una aplicación u otro controlador en modo de usuario.

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

Requisitos

Requisito Value
Finalización del soporte técnico No disponible en UMDF 2.0 y versiones posteriores.
Plataforma de destino Escritorio
Versión mínima de UMDF 1,9
Encabezado wudfddi.h (incluya Wudfddi.h)
Archivo DLL WUDFx.dll

Consulte también

IWDFIoRequest2

IWDFIoRequest2::IsFromUserModeDriver