Неудачная установка служб из INF-файла с использованием командной строки

Вопрос или проблема

Я хочу установить три службы для Windows User Mode Driver Foundation v1.9 с помощью командной строки. Каждая команда, которую я пробовал, терпит неудачу, но если я щелкаю правой кнопкой мыши по wudf_update.inf и выбираю установку, службы устанавливаются нормально. Успешная команда из контекстного меню может быть найдена в реестровом ключе HKEY_CLASSES_ROOT\inffile\shell\Install\command, и ее значение:

%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1

Исходя из этого, я пробовал команду:

rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %SystemRoot%\INF\wudf_update.inf,

но получаю сообщение “Установка не удалась”

Следующие команды также не срабатывают:

rundll32 setupapi,InstallHinfSection DefaultInstall 132 %SystemRoot%\INF\wudf_update.inf

rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall %SystemRoot%\INF\wudf_update.inf

Вот содержимое wudf_update.inf:

    [Version]
Signature = "$WINDOWS NT$"
Provider = %MSFT%
CatalogFile = wudf_update.cat
DriverVer=09/15/2005,1.0.0.0

; ****************************************************************************
;
; Эти два раздела выполняются, когда вызывается установка INF
;
; ****************************************************************************

[DefaultInstall]

[DefaultInstall.Services]
AddService=WudfSvc,%NOCLOBBER_SERVICE%,WudfSvc_Install
AddService=WudfRd,%NOCLOBBER_SERVICE%,WudfRd_Install
AddService=WudfPf,%NOCLOBBER_SERVICE%,WudfPf_Install

; ****************************************************************************
;
; Установка службы менеджера драйверов
;
; ****************************************************************************

[WudfSvc_Install]
DisplayName=%WUDFSVC_DISPLAY_NAME%
Description=%WUDFSVC_DESCRIPTION%
ServiceType=0x20
StartType=%SERVICE_DEMAND_START%
ErrorControl=0x01
ServiceBinary=%10%\system32\svchost.exe -k WudfServiceGroup
LoadOrderGroup=PlugPlay
Dependencies=PlugPlay
StartName = "LocalSystem"
AddReg=WudfSvc_Registry

[WudfSvc_Registry]
HKR, "Parameters", "ServiceDll", %REG_EXPAND_SZ%, "%SystemRoot%\System32\WUDFSvc.dll"
HKR, "Parameters", "ServiceDllUnloadOnStop", %REG_DWORD%, 1
HKR, ,             "FailureActions", %REG_BINARY%, 84,03,00,00,00,00,00,00,00,00,00,00,03,00,00,00,53,00,65,00,01,00,00,00,C0,D4,01,00,01,00,00,00,E0,93,04,00,00,00,00,00,00,00,00,00
HKR, ,             "ServiceSidType", %REG_DWORD%, 1

HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\svchost", "WudfServiceGroup", 0x00010008, "WUDFSvc"

; ****************************************************************************
;
; Установка отражающей службы
;
; ****************************************************************************

[WudfRd_Install]
DisplayName=%WUDFRD_DISPLAY_NAME%
Description=%WUDFRD_DESCRIPTION%
StartType=%SERVICE_DEMAND_START%
ServiceType=0x1
ErrorControl=0x01
ServiceBinary=%12%\wudfrd.sys

; ****************************************************************************
;
; Установка службы платформы
;
; ****************************************************************************

[WudfPf_Install]
DisplayName=%WUDFPLATFORM_DISPLAY_NAME%
Description=%WUDFPLATFORM_DESCRIPTION%
StartType=%SERVICE_DEMAND_START%
ServiceType=0x1
ErrorControl=0x01
ServiceBinary=%12%\WudfPf.sys
LoadOrderGroup="base"

; ****************************************************************************
;
; Источник всех файлов, которые копируются.
;
; ****************************************************************************

[SourceDisksNames]

[SourceDisksFiles]

[SourceDisksFiles.IA64]

[SourceDisksFiles.AMD64]

; ****************************************************************************
;
; Места назначения для каждого раздела копирования.
;
; ****************************************************************************

[DestinationDirs]

;
; Строки замены, используемые в INF
;

[Strings]
MSFT="Microsoft Corporation"

WUDFSVC_DISPLAY_NAME="Фонд драйверов Windows - Среда выполнения драйверов"
WUDFSVC_DESCRIPTION="Управляет процессами хостов драйверов в режимах пользователя"

WUDFRD_DISPLAY_NAME="Фонд драйверов Windows - Отражатель среды выполнения драйверов"
WUDFRD_DESCRIPTION="Отражает запросы устройств на драйверы в режиме пользователя"

WUDFPLATFORM_DISPLAY_NAME="Фонд драйверов Windows - Платформенный драйвер среды выполнения драйверов"
WUDFPLATFORM_DESCRIPTION="Обеспечьте коммуникационные услуги для компонентов UMDF."

NOCLOBBER_SERVICE=0x00000010
SERVICE_BOOT_START=0x0
SERVICE_DEMAND_START=0x3

REG_EXPAND_SZ=0x00020000
REG_SZ=0x00000000
REG_DWORD=0x00010001
REG_BINARY=0x00000001

Файлы драйверов были скопированы в правильное место, и wudf01009.cat был скопирован в правильное место с помощью signtool. Я использую Windows XP.

Ответ или решение

Прежде всего, при установке сервисов через файл INF и использовании командной строки, необходимо удостовериться, что все параметры команды указаны корректно, поскольку даже небольшая ошибка может привести к неудаче при установке. Давайте рассмотрим шаги и возможные решения вашей ситуации с установкой сервисов Windows User Mode Driver Foundation (UMDF) версии 1.9 на Windows XP.

Проблема установки сервисов

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

%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1

Вы пытаетесь запустить эту команду с использованием пути к вашему INF файлу, но получаете ошибку "Установка не удалась". Рассмотрим несколько важных моментов:

Причины неудачи и возможные решения

  1. Правильный путь к файлу INF:
    Убедитесь, что указанный вами путь к файлу wudf_update.inf действительно верный. Проверьте, что файл находится в директории %SystemRoot%\INF.

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

    rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 "C:\Windows\INF\wudf_update.inf"

    Важно обернуть путь в кавычки, если он содержит пробелы.

  3. Права доступа:
    Запустите командную строку от имени администратора. Если у вас нет необходимых прав, установка может завершиться неудачей.

  4. Проверка зависимостей:
    Важно убедиться, что все зависимости, указанные в вашем INF файле, установлены и работают должным образом. Например, убедитесь, что сервис PlugPlay функционирует корректно.

  5. Просмотр журнала установки:
    Windows создает журналы установки для драйверов и сервисов, которые могут содержать полезную информацию для диагностики. Посмотрите в Event Viewer (Просмотр событий) на наличие ошибок, связанных с установкой.

  6. Отладка файла INF:
    Проверьте, нет ли ошибок в самом INF файле. Убедитесь в правильности секций [DefaultInstall], [WudfSvc_Install], [WudfRd_Install] и [WudfPf_Install]. Также убедитесь, что все указанные пути к бинарным файлам (например, WUDFSvc.dll, wudfrd.sys и WudfPf.sys) соответствуют действительности.

  7. Проверка системных файлов:
    Используйте команду sfc /scannow для проверки целостности системных файлов Windows. Это может устранить проблемы с недостающими или поврежденными файлами.

Заключение

Если ни одно из предложенных решений не помогло, возможно, стоит рассмотреть альтернативный метод установки через графический интерфейс, который, как вы отметили, срабатывает корректно. Тем не менее, понимание и исправление причин неудачи через командную строку может помочь не только вам, но и другим пользователям, столкнувшимся с подобной проблемой. Удачи в установке!

Оцените материал
Добавить комментарий

Капча загружается...