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 nuevos controladores UMDF deben escribirse mediante 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 a UMDF.]
El método GetRequestorMode indica si una solicitud de E/S procede de un controlador en modo kernel o de 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 de tipo WDF_KPROCESSOR_MODEque indica si la solicitud de E/S actual procede de un controlador en modo kernel o de un componente en modo de usuario.
Observaciones
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 | Valor |
---|---|
fin del soporte técnico | No disponible en UMDF 2.0 y versiones posteriores. |
de la plataforma de destino de | Escritorio |
versión mínima de UMDF | 1.9 |
encabezado de | wudfddi.h (incluya Wudfddi.h) |
DLL de | WUDFx.dll |