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 |