Compartir a través de


Método IWDFIoRequest::ForwardToIoQueue (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 ForwardToIoQueue reenvía (es decir, requeues) una solicitud de E/S a una de las colas de E/S del controlador de llamada.

Sintaxis

HRESULT ForwardToIoQueue(
  [in] IWDFIoQueue *pDestination
);

Parámetros

[in] pDestination

Puntero a la interfaz IWDFIoQueue para el objeto de cola de destino.

Valor devuelto

forwardToIoQueue devuelve S_OK si la operación se realiza correctamente. De lo contrario, este método devuelve uno de los códigos de error definidos en Winerror.h.

Observaciones

El controlador debe poseer la solicitud de E/S y debe haber obtenido la solicitud de una de sus colas de E/S.

Las colas de origen y destino no pueden ser las mismas. En otras palabras, el controlador no puede llamar a ForwardToIoQueue para devolver una solicitud a la cola de la que procede. Para devolver una solicitud de E/S a la cola de E/S de la que procede, el controlador puede llamar a IWDFIoRequest2::Requeue.

Las colas de origen y destino deben pertenecer al mismo dispositivo.

Además, el método ForwardToIoQueue no puede volver a poner en cola una solicitud que el controlador obtuvo llamando al método IWDFIoQueue::RetrieveNextRequest.

No se puede cancelar la solicitud. Si el controlador llamó anteriormente al método IWDFIoRequest::MarkCancelable para que se pueda cancelar la solicitud, el controlador debe llamar al método IWDFIoRequest::UnmarkCancelable antes de llamar a ForwardToIoQueue.

Ejemplos

En el ejemplo de código siguiente se muestra cómo reenviar una solicitud a otra cola si el búfer de la solicitud no es suficiente para contener la información necesaria.

HRESULT hr;
 if (OutputBufferSizeInBytes < sizeof(SWITCH_STATE)) {
    hr = HRESULT_FROM_NT(ERROR_INSUFFICIENT_BUFFER);
 }
 else {
     hr = FxRequest->ForwardToIoQueue(
                          m_Device->GetSwitchChangeQueue()
                          );
     if (SUCCEEDED(hr)) {
         completeRequest = false;
     }
  }

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.5
encabezado de wudfddi.h (incluya Wudfddi.h)
DLL de WUDFx.dll

Consulte también

IWDFIoQueue

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest

IWDFIoRequest::MarkCancelable

IWDFIoRequest::UnmarkCancelable