Skip to content

Latest commit

 

History

History
82 lines (61 loc) · 3.93 KB

nf-printerextension-iprinterqueue-sendbidiquery.md

File metadata and controls

82 lines (61 loc) · 3.93 KB
UID title description tech.root ms.date keywords ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames f1_keywords topic_type api_type api_location api_name
NF:printerextension.IPrinterQueue.SendBidiQuery
IPrinterQueue::SendBidiQuery (printerextension.h)
Performs an asynchronous refresh operation with the specified query, and invokes the IPrinterQueueEvent::OnBidiResponseReceived method.
print
08/02/2022
IPrinterQueue::SendBidiQuery
IPrinterQueue, IPrinterQueue interface [Print Devices],SendBidiQuery method, IPrinterQueue.SendBidiQuery, IPrinterQueue::SendBidiQuery, SendBidiQuery, SendBidiQuery method [Print Devices], SendBidiQuery method [Print Devices],IPrinterQueue interface, print.iprinterqueue_sendbidiquery, printerextension/IPrinterQueue::SendBidiQuery
printerextension.h
Desktop
Windows 8
Windows Server 2012
Windows
IPrinterQueue::SendBidiQuery
printerextension/IPrinterQueue::SendBidiQuery
APIRef
kbSyntax
COM
Printerextension.h
IPrinterQueue::SendBidiQuery

-description

Performs an asynchronous refresh operation with the specified query, and invokes the IPrinterQueueEvent::OnBidiResponseReceived method.

-parameters

-param bstrBidiQuery [in]

The specified query.

-returns

This method returns an HRESULT value.

-remarks

When the SendBidiQuery method is called, it immediately raises the IPrinterQueueEvent::OnBidiResponseReceived event, if there is a cached response available. The print system then starts an asynchronous operation to use the Bidi Communication Interfaces. At this point SendBidiQuery returns, thus unblocking the caller. When the asynchronous operation completes, the print system raises the IPrinterQueueEvent::OnBidiResponseReceived event again. SendBidiQuery is decoupled from its associated response on purpose. The decoupling is done because, in the case where there is no cached data, the resulting latency can be due to many factors and an immediate response cannot be expected. Additionally the caller may receive multiple responses based on whether there is cached data, and whether there is a response from the device.

Using the Bidi Communication Interfaces causes the port monitor to refresh the underlying requested values. In the case of USB, if a JavaScript component is available, then the JavaScript code is invoked to refresh the requested values.

The cache is also updated in the following situations:

  • At predetermined intervals

    • For WSD devices the data is updated when the device reports changes via events.

    • For TCP & USB devices the refresh interval is based on where the Bidi value is defined.

    • All standard Bidi values (as defined by the port monitor's embedded Bidi files) are refreshed at an interval that is preset by the port monitors. If the specific Bidi Query is part of the IHV Bidi Extension, then the refresh interval is specified in the XML extension file for each individual value.

  • When printer configuration changes

    • For example, when a WSD-based device raises an event to let the spooler (WSDMon) know that something about the device has changed. In other words, the printer configuration has changed.

-see-also

Bidi Communication Interfaces

IPrinterQueue

IPrinterQueueEvent::OnBidiResponseReceived