Maintenance de l’appareil
Important
La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.
Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.
Une fonctionnalité de maintenance des périphériques a été introduite dans Windows 8.1 et les versions ultérieures de Windows.
Cette fonctionnalité utilise la communication bidirectionnelle (Bidi) pour vous permettre d’envoyer des commandes de maintenance des périphériques à partir d’une application UWP pour périphériques ou d’une extension d’imprimante vers le sous-système d’impression. Par exemple, vous pouvez envoyer des commandes à votre périphérique d’impression pour nettoyer les buses d’encre.
Le moniteur de port fonctionne en conjonction avec les fichiers d’extension Bidi fournis par le fournisseur pour traduire ces requêtes Bidi en commandes spécifiques aux périphériques et aux protocoles, puis les transmettre au périphérique d’impression. Une tâche de maintenance des périphériques est effectuée en envoyant des requêtes Bidi « Set » au périphérique d’impression, et la réponse Bidi du périphérique indique si l’opération a réussi ou échoué.
La nouvelle interface asynchrone qui aide à implémenter cette fonctionnalité prend en entrée des données XML sous forme de chaîne de caractères et un objet de rappel (callback).
Étant donné que l’interface est asynchrone, l’appelant n’a pas besoin d’attendre une réponse. Lorsque l’opération Bidi est terminée, l’objet de rappel est invoqué.
Les nouvelles interfaces
Les interfaces suivantes ont été introduites dans Windows (nom de code « Blue ») pour implémenter la fonctionnalité de maintenance des périphériques.
IPrinterBidiSetRequestCallback
IPrinterExtensionAsyncOperation
Initiation d’une session de maintenance des périphériques
Pour initier une session de maintenance des périphériques, vous devez d’abord créer votre chaîne de commande sous forme de données XML. Ensuite, vous devez créer une instance de l’objet de rappel qui sera invoqué après l’achèvement de l’opération Bidi asynchrone.
Une fois l’opération terminée, l’objet de rappel est invoqué sur la méthode IPrinterBidiSetRequestCallback::Completed, qui fournit la valeur HRESULT de l’opération. Vous pouvez ensuite analyser cette valeur HRESULT et effectuer les autres tâches nécessaires.
Le fragment de code C# suivant montre comment lancer une tâche de maintenance des périphériques à partir d’une application UWP pour périphériques.
//
// 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'
}
}
}
La maintenance des périphériques est prise en charge dans les applications UWP pour périphériques après l’invocation de l’application via l’un des trois points d’entrée.
Rubriques connexes
IPrinterBidiSetRequestCallback