Compartilhar via


Método IWDFIoRequest::ForwardToIoQueue (wudfddi.h)

[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Drivers universais do Windows devem usar UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]

O método ForwardToIoQueue encaminha (ou seja, requeues) uma solicitação de E/S para uma das filas de E/S do driver de chamada.

Sintaxe

HRESULT ForwardToIoQueue(
  [in] IWDFIoQueue *pDestination
);

Parâmetros

[in] pDestination

Um ponteiro para a interface IWDFIoQueue para o objeto de fila de destino.

Retornar valor

ForwardToIoQueue retornará S_OK se a operação for bem-sucedida. Caso contrário, esse método retornará um dos códigos de erro definidos em Winerror.h.

Comentários

O driver deve possuir a solicitação de E/S e deve ter obtido a solicitação de uma de suas filas de E/S.

As filas de origem e destino não podem ser as mesmas. Em outras palavras, o driver não pode chamar ForwardToIoQueue para retornar uma solicitação para a fila da qual ele veio. Para retornar uma solicitação de E/S para a fila de E/S da qual ela veio, o driver pode chamar IWDFIoRequest2::Requeue.

As filas de origem e de destino devem pertencer ao mesmo dispositivo.

Além disso, o método ForwardToIoQueue não pode solicitar novamente uma solicitação que o driver obteve chamando o método IWDFIoQueue::RetrieveNextRequest .

A solicitação não pode ser cancelada. Se o driver anteriormente chamou o método IWDFIoRequest::MarkCancelable para tornar a solicitação cancelável, o driver deve chamar o método IWDFIoRequest::UnmarkCancelable antes de chamar ForwardToIoQueue.

Exemplos

O exemplo de código a seguir mostra como encaminhar uma solicitação para outra fila se o buffer da solicitação for insuficiente para manter as informações necessárias.

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
Fim do suporte Indisponível no UMDF 2.0 e posterior.
Plataforma de Destino Área de Trabalho
Versão mínima do UMDF 1.5
Cabeçalho wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Confira também

IWDFIoQueue

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest

IWDFIoRequest::MarkCancelable

IWDFIoRequest::UnmarkCancelable