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 |
---|---|
|
Un parámetro de entrada no es válido. |
|
No hay recursos del sistema suficientes para completar la operación. |
|
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) |