Поделиться через


Как обрабатываются действия Finish-Install

Примечание

Функции, описанные в этом разделе, не поддерживаются в универсальных или мобильных пакетах драйверов. См . раздел Использование универсального INF-файла.

Действия завершения установки для устройства обрабатываются таким же образом установщиком (установщик класса, со-установщик класса или со-установщик устройства), независимо от того, была ли установка первой установкой оборудования или установка инициируется путем запуска программы установки, такой как мастер обнаружения нового оборудования, мастер обновления драйвера программного обеспечения или программа установки, предоставляемая поставщиком ( установка программного обеспечения).

Примечание В Windows 8, Windows 8.1 и Windows 10 действия по завершению установки должны выполняться в центре уведомлений администратором (или ограниченным пользователем, который может предоставить учетные данные администратора в запросе контроля учетных данных). Пользователи должны щелкнуть "Завершить установку программного обеспечения для устройств".

Windows обрабатывает действия завершения и установки после завершения всех остальных операций установки и запуска устройства, в том числе:

  • Установка основного устройства (также известная как установка на стороне сервера), при которой драйвер для устройства устанавливается и загружается компонентами диспетчера Plug and Play (PnP).

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

  1. В конце установки основного устройства Windows вызывает SetupDiCallClassInstaller , чтобы отправить DIF_NEWDEVICEWIZARD_FINISHINSTALL запрос установщикам устройства.

    DIF_NEWDEVICEWIZARD_FINISHINSTALL — это единственный код DIF, который отправляется как в контексте установки основного устройства, так и в контексте клиента. Таким образом, установщик класса, совместное установщик класса или совместное установщик устройства должны указать, что он выполняет действия завершения установки во время обработки DIF_NEWDEVICEWIZARD_FINISHINSTALL, а не во время обработки DIF_INSTALLDEVICE.

  2. Если установщик предоставляет действия завершения установки, он устанавливает флаг DIF_FLAGSEX_FINISHINSTALL_ACTION в ответ на запрос DIF_NEWDEVICEWIZARD_FINISHINSTALL . Если флаг DIF_FLAGSEX_FINISHINSTALL_ACTION установлен после того, как все установщики обработают запрос DIF_NEWDEVICEWIZARD_FINISHINSTALL, устройство помечается для выполнения действия завершения установки.

    Дополнительные сведения об этой операции см. в разделе Маркировка устройства как имеющего Finish-Install действие для выполнения.

  3. После завершения установки основного устройства Windows проверяет, помечено ли устройство для выполнения действия завершения установки. Если он имеется, Windows помещает в очередь процесс завершения установки, который выполняет действия завершения установки, относящиеся к устройству. Процесс выполняется в контексте пользователя.

    В Windows 8 и более поздних версиях действия завершения установки не выполняются автоматически при установке устройства. Вместо этого администратор (или ограниченный пользователь, который может предоставить учетные данные администратора для запроса UAC) должен перейти в центр уведомлений и обратиться к элементу обслуживания "Завершить установку программного обеспечения устройства", чтобы выполнить действие завершения установки. До тех пор действие завершения установки не будет выполняться. Например, если пользователь подключает устройство, которое устанавливает драйвер, который включает действие завершения установки, действие завершения установки не будет выполняться автоматически в это время. Действие завершения установки выполняется позже, когда пользователь инициирует его вручную. Когда Windows запускает действие завершения и установки, действие имеет единственную возможность для запуска. Если действие завершается сбоем, необходимо выполнить соответствующие действия, чтобы позволить пользователю повторить попытку и завершить ее позже. Установка вспомогательного программного обеспечения, которое должно сопровождать драйвер, по-прежнему может выполняться с помощью действия завершения установки, но она также не будет установлена автоматически.

    В Windows 7 процесс завершения установки выполняется только в контексте пользователя с учетными данными администратора в одно из следующих случаев:

    • При следующем входе пользователя с учетными данными администратора при присоединении устройства.
    • При повторном подключении устройства.
    • Когда пользователь нажимает кнопку Проверить на наличие изменений оборудования в диспетчер устройств.

    Если пользователь вошел в систему без прав администратора, Windows запрашивает у пользователя согласие и учетные данные для выполнения действий завершения установки в контексте администратора.

  4. При выполнении операций завершения установки запускается процесс завершения установки и завершает все страницы мастера завершения установки для устройства, а затем вызывает SetupDiCallClassInstaller для отправки запроса DIF_FINISHINSTALL_ACTION всем установщикам устройства, как описано в разделе Выполнение действий Finish-Install.

  5. После завершения действий по завершению установки установщиками Windows запускает действие по умолчанию finish-install, как описано в разделе Выполнение действия Finish-Install по умолчанию.