Was ist der gültige Bereich für Druckauftrags-IDs unter Windows?

1238
Andy

Ich habe jetzt schon eine Weile danach gesucht, aber ich kann keine MS-Dokumentation finden, die die maximalen und minimalen gültigen Druckauftrags-IDs für Windows angibt.

Kennt jemand eine Dokumentation, die diese Informationen bereitstellen könnte?

Der Grund, warum ich frage, ist, dass ich wissen muss, ob 0 eine gültige Druckauftrags-ID ist. Ich gehe nicht davon aus, aber ich habe nicht wirklich viel, worauf ich mich verlassen kann!

3
Programmierst du? Wenn ja, fügen Sie der Warteschlange etwas hinzu und rufen Sie die ID ab Dave vor 11 Jahren 0
Nun, der Grund, warum ich frage, ist, dass ich eine Situation bekomme, in der ich ein unerwartetes Ereignis in meinem Druckertreiber erhalte, das mir eine Job-ID von 0 gibt. Ich bekomme dann im nächsten Ereignis die wahre Job-ID. Ich frage mich nur, ob ich mich darauf verlassen kann, dass 0 eine ungültige Job-ID ist, und das Ereignis basierend auf dem Job ((ID == 0) => ungültiges Ereignis) wegwerfen. Ich denke, ich brauche mehr Selbstvertrauen, als eine Annahme anhand einiger gültiger Ausweise zu machen, die von einigen Ausdrucken zurückgegeben wurden. :) Andy vor 11 Jahren 0
Nein, man kann sich nicht darauf verlassen - die ID hat nichts mit dem Zustand zu tun. Dies kann hilfreich sein: http://support.microsoft.com/kb/202480 ~ (So ermitteln Sie den Druckerstatus und den Druckauftragsstatus aus Visual Basic) Dave vor 11 Jahren 0
Wie können Sie jedoch den Status eines nicht vorhandenen Druckauftrags ermitteln? ;) Ich denke, ich könnte versuchen, den Druckauftrag zu erhalten, und wenn er nicht existiert, weiß ich, dass es eine ungültige Auftrags-ID ist. Ich denke, ich habe mich nur gefragt, ob es eine Dokumentation gibt, die bedeuten würde, dass ich mich auf eine Job-ID von 0 verlassen kann, die auf ein ungültiges Ereignis hinweist. Andy vor 11 Jahren 0
Eine Job-ID von 0 bedeutet jedoch nicht, dass sie nicht existiert - sie bedeutet, dass sie lebendig und glücklich (oder unglücklich) ist! Dave vor 11 Jahren 0
Ich glaube, ich habe etwas gefunden, das das irgendwie unterstützt: http://msdn.microsoft.com/en-us/library/windows/desktop/dd374577(v=vs.85).aspx. Unter "Job-ID" wird angezeigt, dass "0" einen Druckauftrag bezeichnet, dem noch keine ID zugewiesen wurde. Es existiert also, aber es wurde keine ID zugewiesen (Eine ID ist mindestens 1). Andy vor 11 Jahren 0
Ich denke, dass dies für jeden Druckertyp spezifisch sein wird. Eine ID von 0 bedeutet also, dass die Warteschlange leer ist (oder dass keine Jobs zugewiesen wurden). Ich bezweifle, dass Sie das Ereignis wegwerfen können, da es als gültiger Zustand erscheint. Dave vor 11 Jahren 0
Nun, es scheint eine gültige ID zu sein (obwohl Sie keine JOB_INFO_ * - Struktur von ihr bekommen können), aber es ist auch gültig, das Ereignis wegzuwerfen. Als Treiberentwickler muss ich überhaupt nicht mit diesen Ereignissen umgehen, daher ist es nicht schlecht, wenn man mit diesem Ereignis nicht umgeht. Das Scheitern der Veranstaltung (wie ich es tat) wäre eine schlechte Sache! :) Andy vor 11 Jahren 0
Sicher! Klingt gut für mich! :) Andy vor 11 Jahren 0

2 Antworten auf die Frage

0
Ansgar Wiechers

Gemäß der Dokumentation für die Klasse Win32_PrintJob ist die JobIdEigenschaft a uint32, daher kann der Wert zwischen 0 und 4.294.967.295 (2 32 -1) liegen. Es können jedoch zusätzliche Einschränkungen gelten.

Das ist der darstellbare Bereich, von dem nicht notwendigerweise alle gültig sind. Wie in einem Kommentar angegeben, können Sie jobID = 0 für einen ungültigen Job erhalten. MSalters vor 11 Jahren 0
0
Dave

In den Kommentaren von OP beantwortet

(Siehe Quelle unten) sagt unter Job-ID, dass 0 einen Druckauftrag angibt, dem noch keine ID zugewiesen wurde. Es existiert also, aber es wurde keine ID zugewiesen (Eine ID ist mindestens 1).

Quelle