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