Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Viktig
Den moderna utskriftsplattformen är Windows bästa sätt att kommunicera med skrivare. Vi rekommenderar att du använder Microsofts IPP-drivrutin för inkorgsklass tillsammans med Print Support Apps (PSA) för att anpassa utskriftsupplevelsen i Windows 10 och 11 för enhetsutveckling av skrivare.
Mer information finns i designguiden för utskriftssupportapp v1 och v2.
En funktion för enhetsunderhåll har introducerats i Windows 8.1 och senare versioner av Windows.
Den här funktionen använder dubbelriktad kommunikation (Bidi) så att du kan skicka enhetsunderhållskommandon inifrån en UWP-enhetsapp eller ett skrivartillägg till utskriftsundersystemet. Du kan till exempel skicka kommandon till utskriftsenheten för att rensa bläckmunstyckena.
Portövervakaren fungerar tillsammans med bidi-tilläggsfilerna som tillhandahålls av leverantören för att översätta dessa Bidi-begäranden till enhets- och protokollspecifika kommandon och sedan överföra dem till utskriftsenheten. En enhetsunderhållsuppgift utförs genom att skicka Bidi-frågor "Set" till utskriftsenheten, och Bidi-svaret från enheten anger om åtgärden lyckades eller misslyckades.
Det nya asynkrona gränssnittet som hjälper till att implementera den här funktionen tar in XML-data i form av en strängparameter och ett motringningsobjekt.
Eftersom gränssnittet är asynkront behöver anroparen inte vänta på ett svar. När Bidi-åtgärden har slutförts, anropas återkallningsobjektet.
De nya gränssnitten
Följande gränssnitt har introducerats i Windows (med kodnamnet "Blue") för att implementera funktionen för enhetsunderhåll.
IPrinterBidiSetRequestCallback
IPrinterExtensionAsyncOperation
Initierar en enhetsunderhållssession
Om du vill initiera en enhetsunderhållssession måste du först skapa kommandosträngen som XML-data. Sedan måste du skapa en instans av callback-objektet som anropas efter att den asynkrona Bidi-åtgärden har slutförts.
När åtgärden har slutförts anropas återanropsobjektet på metoden IPrinterBidiSetRequestCallback::Completed, vilket tillhandahåller HRESULT-värdet för resultatet av åtgärden. Du kan sedan parsa det här HRESULT-värdet och utföra andra nödvändiga uppgifter.
Följande C#-kodfragment beskriver hur du utfärdar en enhetsunderhållsaktivitet från en UWP-enhetsapp.
//
// 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'
}
}
}
Enhetsunderhåll stöds i UWP-enhetsappar när appen anropas via någon av de tre startpunkterna.
Relaterade ämnen
IPrinterBidiSetRequestCallback