Método IPrinterQueue::SendBidiQuery (printerextension.h)

Executa uma operação de atualização assíncrona com a consulta especificada e invoca o método IPrinterQueueEvent::OnBidiResponseReceived .

Sintaxe

HRESULT SendBidiQuery(
  [in] BSTR bstrBidiQuery
);

Parâmetros

[in] bstrBidiQuery

A consulta especificada.

Valor retornado

Esse método retorna um valor HRESULT .

Comentários

Quando o método SendBidiQuery é chamado, ele gera imediatamente o evento IPrinterQueueEvent::OnBidiResponseReceived , se houver uma resposta em cache disponível. Em seguida, o sistema de impressão inicia uma operação assíncrona para usar as Interfaces de Comunicação Bidi. Neste ponto , SendBidiQuery retorna, desbloqueando assim o chamador. Quando a operação assíncrona é concluída, o sistema de impressão aciona o evento IPrinterQueueEvent::OnBidiResponseReceived novamente. SendBidiQuery é dissociado de sua resposta associada de propósito. A desacoplamento é feita porque, no caso em que não há dados armazenados em cache, a latência resultante pode ser devido a muitos fatores e uma resposta imediata não pode ser esperada. Além disso, o chamador pode receber várias respostas com base em se há dados armazenados em cache e se há uma resposta do dispositivo.

O uso das Interfaces de Comunicação Bidi faz com que o monitor de porta atualize os valores solicitados subjacentes. No caso do USB, se um componente JavaScript estiver disponível, o código JavaScript será invocado para atualizar os valores solicitados.

O cache também é atualizado nas seguintes situações:

  • Em intervalos predeterminados

    • Para dispositivos WSD, os dados são atualizados quando o dispositivo relata alterações por meio de eventos.

    • Para dispositivos USB TCP & , o intervalo de atualização é baseado no local em que o valor bidi é definido.

    • Todos os valores bidi padrão (conforme definido pelos arquivos Bidi inseridos do monitor de porta) são atualizados em um intervalo predefinido pelos monitores de porta. Se a consulta Bidi específica fizer parte da Extensão bidi IHV, o intervalo de atualização será especificado no arquivo de extensão XML para cada valor individual.

  • Quando a configuração da impressora é alterada

    • Por exemplo, quando um dispositivo baseado em WSD gera um evento para permitir que o spooler (WSDMon) saiba que algo sobre o dispositivo foi alterado. Em outras palavras, a configuração da impressora foi alterada.

Requisitos

   
Cliente mínimo com suporte Windows 8
Servidor mínimo com suporte Windows Server 2012
Plataforma de Destino Área de trabalho
Cabeçalho printerextension.h

Confira também

Interfaces de comunicação Bidi

IPrinterQueue

IPrinterQueueEvent::OnBidiResponseReceived