Compartilhar via


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

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

O método ForwardToIoQueue encaminha (ou seja, requeus) 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.

Valor de retorno

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.

Observações

O driver deve ser proprietário da 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 de destino não podem ser as mesmas. Em outras palavras, o driver não pode chamar ForwardToIoQueue para retornar uma solicitação à fila da qual 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 redirecionar uma solicitação obtida pelo driver chamando o método IWDFIoQueue::RetrieveNextRequest.

A solicitação não pode ser cancelável. Se o driver chamou anteriormente o método IWDFIoRequest::MarkCancelable para tornar a solicitação cancelável, o driver deverá 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.
da Plataforma de Destino Área de trabalho
versão mínima do UMDF 1.5
cabeçalho wudfddi.h (inclua Wudfddi.h)
de DLL WUDFx.dll

Consulte também

IWDFIoQueue

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest

IWDFIoRequest::MarkCancelable

IWDFIoRequest::UnmarkCancelable