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 |