Pemeliharaan perangkat

Penting

Kami menyarankan agar Anda menggunakan driver kelas kotak masuk IPP Microsoft, bersama dengan Print Support Apps (PSA), untuk menyesuaikan pengalaman cetak di Windows 10 dan 11 untuk pengembangan perangkat printer.

Untuk informasi selengkapnya, lihat Panduan desain aplikasi dukungan cetak.

Fitur pemeliharaan perangkat telah diperkenalkan di Windows versi Windows 8.1 dan yang lebih baru.

Fitur ini menggunakan komunikasi dua arah (Bidi) untuk memungkinkan Anda mengirim perintah pemeliharaan perangkat dari dalam aplikasi perangkat UWP atau ekstensi printer ke subsistem cetak. Misalnya, Anda dapat mengirim perintah ke perangkat cetak Anda untuk membersihkan nozzle tinta.

Monitor port bekerja bersama dengan file ekstensi Bidi yang disediakan vendor untuk menerjemahkan permintaan Bidi ini ke dalam perintah khusus perangkat dan protokol, lalu mengirimkannya ke perangkat cetak. Tugas pemeliharaan perangkat dilakukan dengan mengirim kueri "Set" Bidi ke perangkat cetak, dan respons Bidi dari perangkat menunjukkan apakah operasi berhasil atau gagal.

Antarmuka asinkron baru yang membantu mengimplementasikan fitur ini mengambil data XML dalam bentuk parameter string, dan objek panggilan balik.

Karena antarmukanya asinkron, pemanggil tidak perlu menunggu respons. Ketika operasi Bidi selesai, objek panggilan balik dipanggil.

Antarmuka baru

Antarmuka berikut telah diperkenalkan di Windows (kode bernama "Biru") untuk mengimplementasikan fitur pemeliharaan perangkat.

IPrinterBidiSetRequestCallback

IPrinterExtensionAsyncOperation

IPrinterQueue2

Memulai Sesi pemeliharaan perangkat

Untuk memulai sesi pemeliharaan perangkat, Anda harus terlebih dahulu membuat string perintah sebagai data XML. Kemudian Anda harus membuat instans objek panggilan balik yang akan dipanggil setelah operasi Bidi asinkron selesai.

Setelah operasi selesai, objek panggilan balik dipanggil pada metode IPrinterBidiSetRequestCallback::Completed, dan yang memberikan nilai HRESULT operasi. Anda kemudian dapat mengurai nilai HRESULT ini dan melakukan tugas lain yang diperlukan.

Cuplikan C# berikut menguraikan cara mengeluarkan tugas pemeliharaan perangkat dari aplikasi perangkat 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'
        }
    }
} 

Pemeliharaan perangkat didukung di aplikasi perangkat UWP setelah aplikasi dipanggil melalui salah satu dari tiga titik masuk.

IPrinterBidiSetRequestCallback

IPrinterExtensionAsyncOperation

IPrinterQueue2