Метод IPrinterQueue::SendBidiQuery (printerextension.h)

Выполняет асинхронную операцию обновления с указанным запросом и вызывает метод IPrinterQueueEvent::OnBidiResponseReceived .

Синтаксис

HRESULT SendBidiQuery(
  [in] BSTR bstrBidiQuery
);

Параметры

[in] bstrBidiQuery

Указанный запрос.

Возвращаемое значение

Этот метод возвращает значение HRESULT .

Комментарии

При вызове метода SendBidiQuery он немедленно вызывает событие IPrinterQueueEvent::OnBidiResponseReceived , если имеется кэшированный ответ. Затем система печати запускает асинхронную операцию для использования интерфейсов связи Bidi. На этом этапе SendBidiQuery возвращает значение , разблокируя вызывающий объект. После завершения асинхронной операции система печати снова вызывает событие IPrinterQueueEvent::OnBidiResponseReceived . SendBidiQuery намеренно отделяется от связанного ответа. Разделение выполняется потому, что в случае отсутствия кэшированных данных результирующая задержка может быть вызвана многими факторами, и немедленного ответа ожидать нельзя. Кроме того, вызывающий объект может получить несколько ответов в зависимости от того, есть ли кэшированные данные и есть ли ответ от устройства.

Использование коммуникационных интерфейсов Bidi приводит к тому, что монитор портов обновляет базовые запрошенные значения. В случае с USB, если доступен компонент JavaScript, вызывается код JavaScript для обновления запрошенных значений.

Кэш также обновляется в следующих ситуациях:

  • С предопределенными интервалами

    • Для устройств WSD данные обновляются, когда устройство сообщает об изменениях с помощью событий.

    • Для УСТРОЙСТВ TCP & USB интервал обновления зависит от того, где определено значение Bidi.

    • Все стандартные значения Bidi (как определено внедренными файлами Bidi монитора портов) обновляются с интервалом, предустановленным мониторами портов. Если конкретный запрос Bidi является частью расширения IHV Bidi, то интервал обновления указывается в XML-файле расширения для каждого отдельного значения.

  • При изменении конфигурации принтера

    • Например, когда устройство на основе WSD вызывает событие, чтобы диспетчеру очереди (WSDMon) было известно, что что-то об устройстве изменилось. Другими словами, конфигурация принтера изменилась.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Персональный компьютер
Верхняя часть printerextension.h

См. также раздел

Коммуникационные интерфейсы Bidi

IPrinterQueue

IPrinterQueueEvent::OnBidiResponseReceived