Что означает код ошибки Windows 3003 (ERROR_SPL_NO_STARTDOC)?

 
Предыдущий Следующий
ERROR_SPOOL_FILE_NOT_FOUND ERROR_SPL_NO_ADDJOB

ERROR_SPL_NO_STARTDOC

Прямой вывод Winspool является последовательностью API с состоянием. Microsoft документирует обычный порядок: OpenPrinter, StartDocPrinter, StartPagePrinter, WritePrinter, EndPagePrinter, EndDocPrinter и ClosePrinter. EndDocPrinter явно сообщает ошибку, если StartDocPrinter не вызывалась.

Поэтому этот статус лучше всего диагностировать как дефект конечного автомата или владения дескриптором. Связность с принтером вторична: вызывающая сторона не создала контекст документа, необходимый для последующих вызовов вывода или завершения.

Проверка последовательности API

  • Трассируйте дескриптор принтера вместе с успешностью StartDocPrinter и возвращённым идентификатором задания.
  • Не устанавливайте локальный флаг «документ начат» до успешного завершения самой StartDocPrinter.
  • Проверьте пути исключений и отмены на наличие EndDocPrinter, WritePrinter или вызова страницы после того, как более ранняя очистка уже сбросила состояние документа.
  • Если несколько потоков используют один дескриптор принтера, сериализуйте жизненный цикл документа либо предоставьте каждому независимому документу собственный правильно принадлежащий ему дескриптор и состояние.

Последовательность прямого вывода данных GDI на принтер · Требования EndDocPrinter · Функции заданий диспетчера очереди печати


Нужно найти другой код? Найти другой код состояния или ошибки.