Partilhar via


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 de retorno

Esse método retorna um valor HRESULT.

Observações

Quando o método SendBidiQuery é chamado, ele imediatamente gera o evento IPrinterQueueEvent::OnBidiResponseReceived, se houver uma resposta armazenada em cache disponível. Em seguida, o sistema de impressão inicia uma operação assíncrona para usar o de 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 gera 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.

Usar as interfaces de comunicação bidi faz com que o monitor de porta atualize os valores solicitados subjacentes. No caso de 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 IHV Bidi, 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

Requisito Valor
de cliente com suporte mínimo Windows 8
servidor com suporte mínimo Windows Server 2012
da Plataforma de Destino Área de trabalho
cabeçalho printerextension.h

Consulte também

interfaces de comunicação bidi

IPrinterQueue

IPrinterQueueEvent::OnBidiResponseReceived