Udostępnij przez


Konserwacja urządzenia

Ważny

Nowoczesna platforma drukowania jest preferowanym sposobem komunikacji z drukarkami w systemie Windows. Zalecamy używanie sterownika klasy skrzynki odbiorczej IPP firmy Microsoft wraz z aplikacjami do obsługi drukowania (PSA), aby dostosować środowisko drukowania w systemie Windows 10 i 11 na potrzeby opracowywania urządzeń drukarki.

Aby uzyskać więcej informacji, zobacz Print Support App v1 and v2 design guide (Przewodnik projektowania aplikacji do obsługi wydruku w wersji 1 i 2).

Funkcja konserwacji urządzeń została wprowadzona w systemie Windows 8.1 i nowszych wersjach systemu Windows.

Ta funkcja używa dwukierunkowej komunikacji (Bidi), aby umożliwić wysyłanie poleceń konserwacji urządzenia z poziomu aplikacji urządzenia platformy Uniwersalnej systemu Windows lub rozszerzenia dla drukarki do podsystemu drukowania. Możesz na przykład wysłać polecenia do urządzenia wydruku, aby wyczyścić dysze atramentowe.

Monitor portów działa w połączeniu z plikami rozszerzenia Bidi dostarczonymi przez dostawcę, aby przetłumaczyć te żądania bidi na polecenia specyficzne dla urządzenia i protokołu, a następnie przesłać je do urządzenia wydruku. Zadanie konserwacji urządzenia jest wykonywane przez wysłanie zapytań Bidi "Set" do urządzenia drukującego, a odpowiedź Bidi z urządzenia wskazuje, czy operacja zakończyła się powodzeniem, czy niepowodzeniem.

Nowy interfejs asynchroniczny, który pomaga zaimplementować tę funkcję, przyjmuje dane XML w postaci parametru ciągu i obiekt wywołania zwrotnego.

Ponieważ interfejs jest asynchroniczny, obiekt wywołujący nie musi czekać na odpowiedź. Po zakończeniu operacji Bidi wywoływany jest obiekt wywołania zwrotnego.

Nowe interfejsy

Następujące interfejsy zostały wprowadzone w systemie Windows (kod o nazwie "Niebieski") w celu zaimplementowania funkcji konserwacji urządzenia.

IPrinterBidiSetRequestCallback

IPrinterExtensionAsyncOperation

IPrinterQueue2

Inicjowanie sesji konserwacji urządzenia

Aby zainicjować sesję konserwacji urządzenia, musisz najpierw utworzyć ciąg polecenia jako dane XML. Następnie należy utworzyć wystąpienie obiektu wywołania zwrotnego, które zostanie wywołane po zakończeniu operacji asynchronicznej bidi.

Po zakończeniu operacji obiekt wywołania zwrotnego jest wywoływany przez metodę IPrinterBidiSetRequestCallback::Completed i udostępnia wartość HRESULT operacji. Następnie można przeanalizować tę wartość HRESULT i wykonać inne potrzebne zadania.

Poniższy fragment kodu w języku C# przedstawia sposób wystawiania zadania konserwacji urządzenia z poziomu aplikacji urządzenia platformy UWP.

//
// 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'
        }
    }
} 

Konserwacja urządzenia jest obsługiwana w aplikacjach urządzeń platformy UWP po wywołaniu aplikacji za pośrednictwem dowolnego z trzech punktów wejścia.

IPrinterBidiSetRequestCallback

IPrinterExtensionAsyncOperation

IPrinterQueue2