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 |