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

Realiza una operación de actualización asincrónica con la consulta especificada e invoca el método IPrinterQueueEvent::OnBidiResponseReceived .

Sintaxis

HRESULT SendBidiQuery(
  [in] BSTR bstrBidiQuery
);

Parámetros

[in] bstrBidiQuery

Consulta especificada.

Valor devuelto

Este método devuelve un valor HRESULT .

Comentarios

Cuando se llama al método SendBidiQuery , genera inmediatamente el evento IPrinterQueueEvent::OnBidiResponseReceived , si hay disponible una respuesta almacenada en caché. A continuación, el sistema de impresión inicia una operación asincrónica para usar las interfaces de comunicación bidi. En este punto , SendBidiQuery devuelve , lo que desbloquea al autor de la llamada. Cuando se completa la operación asincrónica, el sistema de impresión vuelve a generar el evento IPrinterQueueEvent::OnBidiResponseReceived . SendBidiQuery se desacopla de su respuesta asociada a propósito. La desacoplamiento se realiza porque, en el caso de que no haya datos almacenados en caché, la latencia resultante puede deberse a muchos factores y no se puede esperar una respuesta inmediata. Además, el autor de la llamada puede recibir varias respuestas en función de si hay datos almacenados en caché y si hay una respuesta del dispositivo.

El uso de las interfaces de comunicación bidi hace que el monitor de puerto actualice los valores solicitados subyacentes. En el caso de USB, si hay un componente de JavaScript disponible, se invoca el código JavaScript para actualizar los valores solicitados.

La memoria caché también se actualiza en las situaciones siguientes:

  • En intervalos predeterminados

    • En el caso de los dispositivos WSD, los datos se actualizan cuando el dispositivo notifica cambios a través de eventos.

    • En el caso de los dispositivos TCP & USB, el intervalo de actualización se basa en el lugar en el que se define el valor de Bidi.

    • Todos los valores de Bidi estándar (definidos por los archivos Bidi incrustados del monitor de puerto) se actualizan a intervalos preestablecidos por los monitores de puerto. Si la consulta bidi específica forma parte de la extensión bidi de IHV, el intervalo de actualización se especifica en el archivo de extensión XML para cada valor individual.

  • Cuando cambia la configuración de la impresora

    • Por ejemplo, cuando un dispositivo basado en WSD genera un evento para permitir que el administrador de colas (WSDMon) sepa que ha cambiado algo sobre el dispositivo. En otras palabras, la configuración de la impresora ha cambiado.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Escritorio
Encabezado printerextension.h

Consulte también

Interfaces de comunicación bidi

IPrinterQueue

IPrinterQueueEvent::OnBidiResponseReceived