Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležitý
Moderní tisková platforma je upřednostňovaná pro komunikaci s tiskárnami ve Windows. Doporučujeme použít ovladač třídy doručené pošty IPP od Microsoftu spolu s tiskovými podpůrnými aplikacemi (PSA) k přizpůsobení prostředí tisku ve Windows 10 a 11 pro vývoj zařízení tiskárny.
Další informace najdete v průvodci návrhem aplikace podpory tisku v1 a v2.
Funkce údržby zařízení byla zavedena ve Windows 8.1 a novějších verzích Windows.
Tato funkce používá obousměrnou komunikaci (Bidi), která umožňuje odesílat příkazy údržby zařízení z aplikace zařízení UPW nebo rozšíření tiskárny do subsystému tisku. Například můžete odeslat do tiskového zařízení příkazy k vyčištění trysek inkoustu.
Monitorování portů funguje ve spojení se soubory rozšíření Bidi poskytované dodavatelem, aby tyto žádosti Bidi přeložily na příkazy specifické pro zařízení a protokol a pak je přenesly do tiskového zařízení. Úloha údržby zařízení se provádí odesláním dotazů Bidi Set do tiskového zařízení a odpověď Bidi ze zařízení udává, jestli operace proběhla úspěšně nebo selhala.
Nové asynchronní rozhraní, které pomáhá implementovat tuto funkci, přebírá data XML ve formě řetězcového parametru a objekt zpětného volání.
Vzhledem k tomu, že rozhraní je asynchronní, volající nemusí čekat na odpověď. Po dokončení operace Bidi se vyvolá objekt zpětného volání.
Nová rozhraní
Následující rozhraní byla zavedena ve Windows (s názvem "Blue") pro implementaci funkce údržby zařízení.
IPrinterBidiSetRequestCallback
IPrinterExtensionAsyncOperation
Zahájení relace údržby zařízení
Chcete-li zahájit relaci údržby zařízení, musíte nejprve vytvořit příkazový řetězec jako data XML. Pak musíte vytvořit instanci objektu zpětného volání, který bude vyvolán po dokončení asynchronní operace Bidi.
Po dokončení operace je vyvolán zpětný volací objekt metodou IPrinterBidiSetRequestCallback::Completed, která poskytuje hodnotu HRESULT operace. Tuto hodnotu HRESULT pak můžete analyzovat a provést všechny další potřebné úlohy.
Následující fragment kódu jazyka C# popisuje, jak vydat úlohu údržby zařízení z aplikace zařízení pro UPW.
//
// Declare a global constant that will be used
// to determine whether method calls were successful
//
const int S_OK = 0;
class BidiSendAsyncDemo
{
//
// Create a queue object and also
// create the command string
//
void PerformDeviceMaintenance(
IPrinterQueue2 queue,
string bidiRequestInXml
)
{
BidiSetResultCallback callBack = new BidiSetResultCallback();
IPrinterExtensionAsyncOperation asyncOperation =
queue.SendBidiSetRequestAsync(bidiRequestInXml, callBack);
}
}
/// <summary>
/// This class represents the callback object
/// </summary>
public class BidiSetResultCallback :
IPrinterBidiSetRequestCallback
{
void Completed(
string bidiResponse,
int hr
)
{
if (S_OK == hr)
{
// parse and interpret 'bidiResponse'
}
}
}
Údržba zařízení se podporuje v aplikacích zařízení pro UPW po vyvolání aplikace prostřednictvím některého ze tří vstupních bodů.
Související témata
IPrinterBidiSetRequestCallback