Udostępnij za pośrednictwem


Dyrektywa INF AddSoftware

Każda dyrektywa AddSoftware opisuje instalację oprogramowania autonomicznego. Ta dyrektywa powinna być używana w pliku INF klasy konfiguracji SoftwareComponent. Aby uzyskać więcej informacji na temat składników oprogramowania, zobacz Using a Component INF File. Ta dyrektywa jest obsługiwana w systemie Windows 10 w wersji 1703 lub nowszej.

Prawidłowe typy instalacji zależą od platformy docelowej . Na przykład program Desktop obsługuje instalatory MSI i instalatory EXEs.

Uwaga

Typ 2 jest obsługiwany w sterownikach uniwersalnych, typ 1 jest tylko dla komputerów stacjonarnych.

Gdy plik INF składnika oprogramowania określa AddSoftware, system kolejkuje oprogramowanie do zainstalowania po instalacji urządzenia. Nie ma żadnej gwarancji, kiedy lub jeśli oprogramowanie zostanie zainstalowane. Jeśli instalacja przywołytowanego oprogramowania nie powiedzie się, system spróbuje ponownie po zaktualizowaniu składnika oprogramowania odwołującego się do odwołania.

Dyrektywa AddSoftware jest używana w INF DDInstall. Sekcja oprogramowania.

[DDInstall.Software]
AddSoftware=SoftwareName,[flags],software-install-section

Wpisy

SoftwareName
Określa nazwę oprogramowania do zainstalowania. Ta nazwa musi być unikatowa dla całego systemu, niezależnie od nazwy INF lub sekcji. Przetwarzanie dyrektywy AddSoftware sprawdza wersję względem poprzedniego oprogramowania zainstalowanego o tej samej nazwie przez dyrektywę AddSoftware z dowolnego pakietu sterowników. Zalecamy wstępne tworzenie wstępnie nazwy oprogramowania o nazwie dostawcy, na przykład ContosoControlPanel.

flagi
Określa co najmniej jedną flagę (ORed).

0x00000000
Dyrektywa AddSoftware jest przetwarzana tylko raz.

0x00000001
Dyrektywa AddSoftware jest przetwarzana raz dla każdego urządzenia składnika, które określa AddSoftware o tym samym unikatowym SoftwareName.

Rozważmy na przykład konfigurację, w której zainstalowano trzy urządzenia przy użyciu tego samego pliku INF. Proces instalacji oprogramowania jest uruchamiany tylko raz dla flag 0x00000000, ale trzy razy dla flag 0x00000001.

sekcji software-install-section
Odwołuje się do sekcji zdefiniowanej przez moduł zapisywania INF, która zawiera informacje dotyczące instalowania oprogramowania.

Uwagi

Każda nazwa sekcji utworzonej przez moduł zapisywania INF musi być unikatowa w pliku INF i musi być zgodna z ogólnymi regułami definiowania nazw sekcji. Aby uzyskać więcej informacji na temat tych reguł, zobacz ogólne reguły składni dla plików INF.

Dyrektywa AddSoftware musi odwoływać się do nazwanej sekcji software-install-section gdzie indziej w pliku INF. Każda taka sekcja ma następującą formę:

[software-install-section]

SoftwareType=type-code
[SoftwareBinary=path-to-binary]
[SoftwareArguments=argument[, argument] …]
[SoftwareVersion=w.x.y.z]
[SoftwareID=pfn://x.y.z]

Uwaga

Aby uzyskać informacje na temat ograniczeń dotyczących wpisów i wartości sekcji, zobacz SoftwareType.

Każde oprogramowanie zainstalowane przy użyciu AddSoftware musi być zainstalowane w trybie dyskretnym (lub cicho). Innymi słowy, żaden interfejs użytkownika nie może być wyświetlany użytkownikowi podczas instalacji.

Każde oprogramowanie zainstalowane przy użyciu AddSoftware nie będzie zostać odinstalowane, jeśli urządzenie składnika oprogramowania wirtualnego lub jego urządzenia nadrzędne zostaną odinstalowane. Jeśli oprogramowanie nie jest aplikacją platformy UNIWERSALNEJ systemu Windows (tj. używasz AddSoftware z oprogramowaniem SoftwareType 1), upewnij się, że użytkownicy mogą łatwo go odinstalować bez opuszczania śledzenia w rejestrze. Aby to zrobić:

  • Jeśli używasz instalatora MSI, skonfiguruj wpis Dodaj/Usuń programy w pakiecie Instalatora Windows aplikacji.

  • Jeśli używasz niestandardowego pliku EXE, który instaluje globalny stan rejestru/pliku (zamiast uzupełniać ustawienia urządzenia lokalnego), użyj Odinstaluj klucz rejestru.

Wpisy i wartości sekcji instalacji oprogramowania

SoftwareType= {type-code}
SoftwareType określa typ instalacji oprogramowania i jest wymagany wpis.

Wartość 1 wskazuje, że skojarzone oprogramowanie jest plikiem binarnym MSI lub EXE. Po ustawieniu tej wartości wymagany jest również wpis SoftwareBinary. Wartość 1 nie jest obsługiwana w systemie Windows 10 S.

Jeśli SoftwareType jest ustawiona na 1, SoftwareBinary i SoftwareVersion są również wymagane, ale SoftwareArguments i flagi (w dyrektywie AddSoftware) są opcjonalne.

Począwszy od systemu Windows 10 w wersji 1709, wartość 2 wskazuje, że skojarzone oprogramowanie jest linkiem do sklepu Microsoft Store. Użyj wartości 1 tylko dla oprogramowania specyficznego dla urządzenia, które nie ma graficznego interfejsu użytkownika. Jeśli masz aplikację specyficzną dla urządzenia z elementami graficznymi, powinna pochodzić ze sklepu Microsoft Store, a sterownik powinien odwoływać się do niej przy użyciu SoftwareType wartości 2.

Jeśli SoftwareType jest ustawiona na 2, jest wymagany SoftwareID, a flagi (w dyrektywie AddSoftware) są opcjonalne. Jeśli SoftwareType jest ustawiona na 2, SoftwareBinary i SoftwareVersion nie są używane.

Uwaga

W przypadku używania klasy SoftwareType 2 dyrektywy AddSoftware nie jest wymagane użycie składnika INF. Dyrektywę można pomyślnie użyć w dowolnym inf. Jednak należy użyć dyrektywy AddSoftware typu 1 ze składnika INF.

Nie używaj oprogramowania AddSoftware do dystrybucji oprogramowania, które nie jest powiązane z urządzeniem. Na przykład nie należy instalować programu narzędziowego komputera specyficznego dla producenta OEM z dodatkiem AddSoftware. Zamiast tego użyj jednej z następujących opcji, aby wstępnie instalować aplikację na obrazie producenta OEM systemu Windows 10:

  • Aby wstępnie zainstalować aplikację Win32, uruchom go w trybie inspekcji i zainstaluj aplikację. Aby uzyskać szczegółowe informacje, zobacz omówienie trybu inspekcji .

  • Aby wstępnie instalować aplikację ze sklepu Microsoft Store (UWP), zobacz Preinstalowalne aplikacje dla urządzeń stacjonarnych

Aby uzyskać informacje o parowaniu sterownika z aplikacją platformy uniwersalnej systemu Windows (UWP), zobacz Parowanie sterownika za pomocą aplikacji platformy uniwersalnej systemu Windows (UWP) i aplikacji do obsługi sprzętu (HSA): kroki dla deweloperów sterowników.

SoftwareBinary= {nazwa pliku}
Określa ścieżkę do pliku wykonywalnego. System generuje wiersze polecenia podobne do następujących:

MSI: msiexec /i "<SoftwareBinary>" ALLUSERS=1 /quiet /qn /promptrestart [<SoftwareArguments>]

EXE: <SoftwareBinary> [<SoftwareArguments>]

Jeśli używasz tego wpisu, musisz dodać plik wykonywalny do driverStore, określając dyrektywy INF CopyFiles z DestinationDirs wartość 13.

Uwaga

Zobacz SoftwareType, aby uzyskać informacje na temat ograniczeń dotyczących wpisów i wartości SoftwareBinary.

SoftwareArguments={argument1[, argument2[, ... argumentN]]}
Określa argumenty specyficzne dla rozszerzenia, które mają być dołączane do wiersza polecenia. Można określić argumenty wiersza polecenia, które system po prostu przechodzi do wygenerowanego wiersza polecenia. Można również określić specjalne ciągi o nazwie zmiennych kontekstu środowiska uruchomieniowego. Po określeniu zmiennej kontekstowej środowiska uruchomieniowego system konwertuje go na wartość specyficzną dla urządzenia przed dołączeniem go do wygenerowanego wiersza polecenia. Argumenty ciągu literału można mieszać i dopasowywać z zmiennymi kontekstu środowiska uruchomieniowego. Obsługiwane zmienne kontekstowe środowiska uruchomieniowego to:

<<DeviceInstanceID>>

System zastępuje powyższy ciąg identyfikatorem wystąpienia urządzenia składnika oprogramowania.

Na przykład:

    [DDInstall.Software]
    AddSoftware=ContosoControlPanel,,Contoso_ControlPanel_Software

    [Contoso_ControlPanel_Software]
    SoftwareType=1
    SoftwareBinary=ContosoControlPanel.exe
    SoftwareArguments=<<DeviceInstanceID>>
    SoftwareVersion=1.0.0.0

Powyższy przykład powoduje wyświetlenie wiersza polecenia w następujący sposób:

<DriverStorePath>\ContosoControlPanel.exe PCI\VEN_0000&DEV_0001&SUBSYS_00000000&REV_00\0123

Jeśli argumenty SoftwareArguments zawierają wiele argumentów:

    SoftwareArguments=arg1,<<DeviceInstanceID>>,arg2

Powyższe wyniki są następujące:

<DriverStorePath>\ContosoControlPanel.exe arg1 PCI\VEN_0000&DEV_0001&SUBSYS_00000000&REV_00\0123 arg2

Uwaga

Zobacz SoftwareType, aby uzyskać informacje na temat ograniczeń dotyczących SoftwareArguments wpisów i wartości.

SoftwareVersion={w.x.y.z}
Określa wersję oprogramowania. Każda wartość nie powinna przekraczać 65535. Gdy system napotka duplikat SoftwareName, sprawdza SoftwareVersion względem poprzedniego SoftwareVersion. Jeśli jest on większy, system Windows uruchamia oprogramowanie.

Uwaga

Aby uzyskać informacje na temat ograniczeń dotyczących wpisów i wartości SoftwareVersion, zobacz SoftwareType.

SoftwareID={x.y.z}
Określa identyfikator i typ identyfikatora sklepu Microsoft Store. Obecnie obsługiwana jest tylko nazwa rodziny pakietów (PFN). Użyj nazwy PFN, aby odwołać się do aplikacji platformy uniwersalnej systemu Windows (UWP) przy użyciu formularza pfn://<x.y.z>.

Uwaga

Aby uzyskać informacje na temat ograniczeń dotyczących wpisów i wartości SoftwareID, zobacz SoftwareType.

Zobacz też

przy użyciu pliku INF składnika

sekcji INF DDInstall.Software

dyrektywy ADDComponent INF

parowanie sterownika z aplikacją platformy uniwersalnej systemu Windows (UWP)

Aplikacja do Obsługi Sprzętu (HSA): Kroki dla Programistów Sterowników