| Предыдущий | Следующий |
| ERROR_INVALID_PRINTER_NAME | ERROR_INVALID_PRINTER_COMMAND |
ERROR_PRINTER_ALREADY_EXISTS
AddPrinter создаёт объект принтера в подсистеме печати целевого сервера. Microsoft документирует, что вызов обычно завершается ошибкой, если объект с тем же именем уже существует. Особый случай предусмотрен для принтера, помеченного как ожидающий удаления: параметры создания тогда могут обновить существующий объект.
Это делает ошибку проблемой конфигурации и времени жизни объекта, а не признаком двукратного обнаружения физического принтера. Код развёртывания должен сравнить существующую очередь с требуемым состоянием и решить, следует ли её использовать, обновить, переименовать или удалить.
Согласуйте состояние вместо циклических повторов
- Перечислите существующий принтер и получите его драйвер, порт, процессор печати, атрибуты и конфигурацию общей папки.
- Проверьте, не создал ли очередь параллельно другой установщик или администратор.
- Если удаление выполнялось непосредственно перед пересозданием, запишите состояние ожидания удаления и заданий в очереди.
- Для поддерживаемых обновлений используйте SetPrinter вместо повторных вызовов AddPrinter с тем же именем объекта.
Microsoft: поведение AddPrinter · SetPrinter · Администрирование принтеров Samba через RPC spoolss
Нужно найти другой код? Найти другой код состояния или ошибки.