Función WdfRequestChangeTarget (wdfrequest.h)

[Se aplica a KMDF y UMDF]

El método WdfRequestChangeTarget comprueba que se puede enviar una solicitud de E/S especificada a un destino de E/S especificado.

Sintaxis

NTSTATUS WdfRequestChangeTarget(
  [in] WDFREQUEST  Request,
  [in] WDFIOTARGET IoTarget
);

Parámetros

[in] Request

Identificador de un objeto de solicitud de marco.

[in] IoTarget

Identificador de un objeto de destino de E/S de marco.

Valor devuelto

WdfRequestChangeTarget devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Un parámetro de entrada no es válido.
STATUS_INSUFFICIENT_RESOURCES
No hay recursos del sistema suficientes para completar la operación.
STATUS_REQUEST_NOT_ACCEPTED
La matriz de ubicaciones de pila de E/S de la solicitud no es lo suficientemente grande como para permitir que el controlador envíe la solicitud al destino de E/S.
 

Este método también podría devolver otros valores NTSTATUS.

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Comentarios

El controlador debe llamar al método WdfRequestChangeTarget antes de llamar a WdfRequestSend, si el controlador envía una única solicitud de E/S a varios destinos de E/S. WdfRequestChangeTarget comprueba que la solicitud se puede enviar al destino de E/S especificado.

La mayoría de los controladores envían cada solicitud a un solo dispositivo y, por tanto, a un solo destino de E/S. Un controlador recibe la solicitud o crea una nueva solicitud llamando a WdfRequestCreate.

Si el controlador envía la solicitud a un dispositivo, llama a WdfDeviceGetIoTarget para determinar el destino de E/S del dispositivo y, a continuación, llama a WdfRequestSend para enviar la solicitud al destino.

Si el controlador envía la solicitud a varios dispositivos, llama a WdfDeviceGetIoTarget para cada dispositivo para determinar el destino de E/S del dispositivo. Antes de llamar a WdfRequestSend, el controlador debe llamar a WdfRequestChangeTarget para asegurarse de que cada destino de E/S sea accesible.

Para obtener más información sobre WdfRequestChangeTarget, vea Reenvío de solicitudes de E/S.

Ejemplos

En el ejemplo de código siguiente se comprueba que se puede enviar una solicitud de E/S a un destino de E/S local del dispositivo especificado.

NTSTATUS  status;

status = WdfRequestChangeTarget(
                                request,
                                WdfDeviceGetIoTarget(Device)
                                );

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfrequest.h (incluya Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

WdfDeviceGetIoTarget

WdfRequestCreate

WdfRequestSend