Я разработчик программного обеспечения и производитель принтеров. Недавно спросил у водителя. Итак, я начинаю копаться в поисках руководств, образцов, статей.
Первым делом я загрузил Windows Driver Kit 7600.16385.1. Я устанавливаю его, собираю с некоторыми образцами драйверов (например, только общие / текстовые). Я изменил раздел производителя в файле inf и работал нормально. Но я попросил сделать более конкретный драйвер, получая данные из любого приложения, которое может печатать, и отправлять их на наш принтер.
На этом этапе я немного покопаюсь, установив Visual Studio 2013 и winddk 8.1. Я пробую образец драйвера принтера v4 из коробки. Мне удалось его построить (Inf to cat ведет себя странно, поэтому я отключил его свойства проекта). Затем я пытаюсь установить принтер с новым драйвером. Драйверы вообще не устанавливались. Я просмотрел синтаксис inf, нашел несколько ошибок и исправил проблему. После этого я продолжаю получать ошибку 0x00000002. Мне удалось решить проблему, после чего я получаю ошибку 0x0000003.
Итак, я записал проект inf intaller c #, удалось установить драйвер. Драйвер отображался в разделе драйверов принтера, но я пытаюсь установить новый принтер, установка продолжает сбиваться с ошибкой 0x0000003. Я ищу ошибку, я обнаружил, что это ошибка path_not_found. Я проверяю свой файл inf, проверяю синтаксис. Я приложил некоторые усилия, но продолжаю получать ошибку 0x0000003.
Что я делаю для решения проблемы?
На форумах люди говорят, что это проблема привилегий, вызывающая эту ошибку в учетных данных Windows. Я настраиваю новую учетную запись администратора и устанавливаю драйвер. Но при попытке настройки ошибка принтера такая же.
Я исследую журналы Windows в папке Windows: setupapi.dev.log и setupact.log. В этом разделе я нахожу ошибки 0x0000002, но не обнаружил ошибок 0x000003. Мне это не поможет.
Некоторые люди на форумах говорят, что проблемы могут быть вызваны предустановленными драйверами и принтером. Я удаляю драйверы и принтеры в хранилище драйверов system32. Также удалите раздел «Принтеры и принтеры» под панелью управления. Результат такой же.
Я нашел канал 9, это какая-то сеть разработки майкрософт. Я нашел несколько видеоуроков и слайдов о разработке. Я смотрел HW-328T, HW-238T, HW-979P, HW-981P, HW-903T, HW-322T. Эти видео дали мне некоторое представление, но не более того.
Поэтому я продолжаю копать проблему, используя инструмент eventwiever в Windows. Обнаружена ошибка HRESULT 0x80070003. Это говорится в журнале ошибок диспетчера очереди печати. Я перезапускаю диспетчер очереди печати, ошибка продолжается, я перезапускаю службу и перезагружаю компьютер, ошибка продолжается.
Я пробую старые записи редактора реестра драйверов. Результат такой же. Мне удалось получить права администратора папки Windows, это не имело значения.
Я пытаюсь установить новый принтер, используя командную строку с привилегиями администратора, результат такой же.
Многочисленные попытки установки на 64-битные и 32-битные окна.
Также пробую использовать типы GPD, PPD.
Мои образцы кода.
INF файл
[Version] Signature="$Windows NT$" Class=Printer ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318} Provider=%ManufacturerName% CatalogFile=Ali.cat ClassVer=4.0 DriverVer=08/01/2012,1.0.0.0 [DestinationDirs] DefaultDestDir = 66000 [Manufacturer] %ManufacturerName%=Ali,NTia64,NTamd64 [Ali] "Ali V1" = Ali.GPD [Ali.NTia64] "Ali V1" = Ali.GPD [Ali.NTamd64] "Ali V1" = Ali.GPD [SourceDisksNames.amd64] 1= %DiskName%,,, [SourceDisksFiles.amd64] Ali.gpd = 1 [SourceDisksNames.ia64] 1= %DiskName%,,, [SourceDisksFiles.ia64] Ali.gpd = 1 [Strings] ManufacturerName="Ali" DiskName="Ali Installation Disk"
Мой код функции C # для установки файлов inf
if (SetupCopyOEMInf(inf_path, "", 2, 0x0000400, null, 0, 0, null))
Заранее спасибо.
Примечание. при необходимости я также могу опубликовать файл GPD.
inf_path
? Учитывая ошибку, с которой вы сталкиваетесь, эта переменная будет вероятным подозреваемым. - person Carey Gregory   schedule 31.03.2015