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 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 ForwardToIoQueue reenvía (es decir, requeues) una solicitud de E/S a una de las colas de E/S del controlador que realiza la llamada.
Sintaxis
HRESULT ForwardToIoQueue(
[in] IWDFIoQueue *pDestination
);
Parámetros
[in] pDestination
Puntero a la interfaz IWDFIoQueue del 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.
Comentarios
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 la solicitud se pueda cancelar, 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 | 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.5 |
Encabezado | wudfddi.h (incluya Wudfddi.h) |
Archivo DLL | WUDFx.dll |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de