Sekcja InF ClassInstall32

Caution

Jeśli tworzysz uniwersalny lub Windows pakiet sterowników, ta sekcja jest nieprawidłowa. Zobacz Using a Universal INF File (Używanie uniwersalnego pliku INF) i Get started developing Windows drivers (Rozpoczynanie opracowywania sterowników Windows).

Sekcja ClassInstall32 instaluje nową klasę konfiguracji urządzenia dla urządzeń w nowej klasie.

[ClassInstall32] | 
[ClassInstall32.nt] | 
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows) 
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows) 

AddReg=add-registry-section[,add-registry-section]...
[AddProperty=add-property-section[,add-property-section] ...]  (Windows Vista and later versions of Windows)
[Copyfiles=@filename | file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section] ...]  (Windows Vista and later versions of Windows)
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]

Wpisy

AddReg=add-registry-section[,add-registry-section]...
Odwołuje się do co najmniej jednej nazwanej sekcji zawierającej wpisy wartości specyficzne dla klasy, które mają być zapisywane w rejestrze. Zazwyczaj służy to do nadania nowej klasie konfiguracji urządzenia co najmniej przyjaznej nazwy, którą inne składniki mogą później pobrać z rejestru i użyć do otwierania zainstalowanych urządzeń tej nowej klasy urządzeń lub "instalowania" dowolnego dostawcy strony właściwości dla tej klasy konfiguracji urządzenia itd.

Specyfikacja HKR w dowolnej sekcji add-registry-wyznacza klucz rejestru, który zawiera ustawienia dla tej klasy. Aby uzyskać dodatkowe informacje, zobacz następującą sekcję Uwagi .

Aby uzyskać więcej informacji, zobacz INF AddReg Directive (Dyrektywa INF AddReg).

AddProperty=add-property-section[,add-property-section]...
(Windows Vista i nowsze wersje Windows) Odwołuje się do co najmniej jednej sekcji pliku INF, które modyfikują właściwości urządzenia ustawione dla klasy konfiguracji urządzenia. Należy użyć dyrektywy INF AddProperty tylko w celu ustawienia właściwości klasy konfiguracji urządzenia, która jest nowa do Windows Vista lub nowszych wersji systemów operacyjnych Windows.

W przypadku właściwości klasy urządzenia, które zostały wprowadzone wcześniej w Windows Server 2003, Windows XP lub Windows 2000, i które mają odpowiednie wartości wpisu rejestru, należy nadal używać dyrektyw INF AddReg, aby ustawić właściwość klasy konfiguracji urządzenia. Te wytyczne dotyczą właściwości zdefiniowanych przez system i właściwości niestandardowych.

Aby uzyskać więcej informacji na temat używania dyrektywy AddProperty , zobacz Using the INF AddProperty Directive and the INF DelProperty Directive (Używanie dyrektywy INF AddProperty) i INF DelProperty Directive (Dyrektywa INF DelProperty).

Copyfiles=@nazwa | pliku-list-sekcji[,file-list-section]...
Określa jeden nazwany plik, który ma zostać skopiowany z nośnika źródłowego do miejsca docelowego lub odwołuje się do co najmniej jednej nazwanej sekcji, w których są określone pliki odpowiednie dla klasy na nośniku źródłowym do transferu do miejsca docelowego. Wpis DefaultDestDir w sekcji DestinationDirs INF określa katalog docelowy dla dowolnego pojedynczego pliku specyficznego dla klasy do skopiowania.

Aby uzyskać więcej informacji, zobacz dyrektywa INF CopyFiles.

Uwaga

Pliki INF dostarczone przez system dla klas konfiguracji urządzeń nie używają tej dyrektywy w tej sekcji.

DelReg=del-registry-section[,del-registry-section]...
Odwołuje się do co najmniej jednej nazwanej sekcji, w której określono wpisy lub klucze wartości, które mają zostać usunięte z rejestru podczas instalacji instalatora klas.

Jeśli jednak określony element {SetupClassGUID} już istnieje jako zainstalowana klasa, kod konfiguracji systemu następnie ignoruje sekcję ClassInstall32 dowolnego inf, który określa tę samą wartość identyfikatora GUID w sekcji Wersja . W związku z tym funkcja INF nie może zastąpić istniejącego instalatora klasy ani zmodyfikować jego zachowania z sekcji ClassInstall32 .

Aby uzyskać więcej informacji, zobacz INF DelReg, dyrektywa.

DelProperty=del-property-section[,del-property-section]...
(Windows Vista i nowsze wersje Windows) Odwołuje się do co najmniej jednej sekcji pliku INF, które usuwają właściwości urządzenia ustawione dla klasy konfiguracji urządzenia. Należy użyć dyrektywy INF DelProperty tylko do usunięcia właściwości klasy konfiguracji urządzenia, która jest nowa do Windows Vista lub nowszych wersji systemów operacyjnych Windows.

W przypadku właściwości klasy urządzeń, które zostały wprowadzone wcześniej w Windows Server 2003, Windows XP lub Windows 2000, i które mają odpowiednie wartości wpisu rejestru, należy nadal używać dyrektyw INF DelReg, aby usunąć właściwość klasy konfiguracji urządzenia. Te wytyczne dotyczą właściwości zdefiniowanych przez system i właściwości niestandardowych.

Aby uzyskać więcej informacji na temat używania dyrektywy DelProperty, zobacz Using the INF AddProperty Directive and the INF DelProperty Directive (Używanie dyrektywy INF AddProperty) i INF DelProperty Directive (Dyrektywa INF DelProperty).

Delfiles=file-list-section[,file-list-section]...
Odwołuje się do co najmniej jednej nazwanej sekcji, w której wcześniej zainstalowane pliki odpowiednie dla klasy w miejscu docelowym są określone do usunięcia.

Aby uzyskać więcej informacji, zobacz INF DelFiles, dyrektywa.

Renfiles=file-list-section[,file-list-section]...
Odwołuje się do co najmniej jednej nazwanej sekcji, w której wymieniono nazwy plików odpowiednich dla klasy w miejscu docelowym.

Aby uzyskać więcej informacji, zobacz INF RenFiles, dyrektywa.

BitReg=bit-registry-section[,bit-registry-section]...
Jest prawidłowy w tej sekcji, ale prawie nigdy nie był używany.

Aby uzyskać więcej informacji, zobacz InF BitReg Directive (Dyrektywa INF BitReg).

UpdateInis=update-ini-section[,update-ini-section]...
Jest prawidłowy w tej sekcji, ale prawie nigdy nie był używany.

Aby uzyskać więcej informacji, zobacz INF UpdateInis, dyrektywa.

UpdateIniFields=update-inifields-section[,update-inifields-section]...
Jest prawidłowy w tej sekcji, ale prawie nigdy nie był używany.

Aby uzyskać więcej informacji, zobacz INF UpdateIniFields, dyrektywa.

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Jest prawidłowy w tej sekcji, ale prawie nigdy nie był używany.

Aby uzyskać więcej informacji, zobacz INF UpdateIniFields, dyrektywa.

Remarks

Należy uwzględnić sekcję ClassInstall32 w pliku INF urządzenia tylko w celu zainstalowania nowej niestandardowej klasy konfiguracji urządzenia. Pliki INF dla urządzeń w zainstalowanej klasie, niezależnie od tego, czy klasa konfiguracji urządzenia dostarczonego przez system , czy klasa niestandardowa, nie powinny zawierać sekcji ClassInstall32 . Ponieważ system przetwarza sekcję ClassInstall32 tylko wtedy, gdy klasa nie jest jeszcze zainstalowana, nie można użyć sekcji ClassInstall32 , aby ponownie zainstalować lub zmienić ustawienia dla klasy, która jest już zainstalowana. W szczególności nie można użyć sekcji ClassInstall32 , aby dodać współinstalator klasy lub sterownik filtru klasy dla klasy, która jest już zainstalowana. Aby uzyskać informacje o sposobie instalowania współinstalatorów i sterowników filtrów, zobacz Pisanie współinstalatora i Instalowanie sterownika filtru.

Zazwyczaj sekcja ClassInstall32 zawiera co najmniej jedną dyrektywę AddReg , aby dodać wpisy w podkluczu SetupClassGUID dostarczone przez system w rejestrze. Te wpisy mogą zawierać "przyjazną nazwę klasy", ścieżkę instalatora klasy, ikonę klasy, dostawcę strony właściwości itd.

Z wyjątkiem addReg i CopyFiles, inne dyrektywy pokazane tutaj rzadko są używane w sekcji ClassInstall32 .

Aby obsługiwać wieloplatformową dystrybucję plików sterowników, należy utworzyć sekcje ClassInstall32 specyficzne dla platformy. Na przykład wszystkie funkcje SetupAPI systemu, które przetwarzają sekcję ClassInstall32 , będą wyszukiwać najpierw sekcję ClassInstall32.ntx86 na platformie x86 i badać tylko nieukodowaną sekcję ClassInstall32 , jeśli nie mogą znaleźć sekcji ClassInstall32.ntx86 . Aby uzyskać więcej informacji na temat używania zdefiniowanych przez system rozszerzeń nt, ntx86, ntia64, ntamd64, ntarm i ntarm64 , zobacz Tworzenie plików INF dla wielu platform i systemów operacyjnych.

Uwaga

Nazwa sekcji ClassInstall32 jest również używana do instalacji na platformach 64-bitowych.

Począwszy od Windows 2000, każde zainstalowane urządzenie jest skojarzone z klasą konfiguracji urządzenia. Jeśli inf dla urządzenia do zainstalowania nie jest skojarzony z nowym instalatorem klasy urządzenia lub jeśli jego specyfikacja ClassGUID= w sekcji Wersja nie jest zgodna z identyfikatorem GUID klasy konfiguracji zdefiniowanej przez system, to urządzenie jest skojarzone z klasą konfiguracji urządzenia o nazwie "Nieznany".

InF dla dowolnego instalatora klasy urządzenia zazwyczaj ma dyrektywę AddReg w sekcji ClassInstall32 , aby zdefiniować co najmniej jedną nazwę nazwaną, która tworzy przyjazną nazwę dla tego rodzaju urządzenia. Kod instalacyjny automatycznie tworzy klucz SetupClassGUID w odpowiednim miejscu w rejestrze z wartości podanej dla wpisu ClassGUID= w sekcji Wersja INF po zainstalowaniu pierwszego urządzenia tej (nowej) klasy konfiguracji.

InF może używać sekcji add-registry, do których odwołuje się sekcja ClassInstall32 , w celu określenia dostawcy strony właściwości i wywierania kontroli nad sposobem obsługi jej klasy urządzeń w interfejsie użytkownika.

Taka sekcja dodawania rejestru specyficzna dla klasy ma następującą ogólną formę:

[SetupClassAddReg]
 
HKR,,,,%DevClassName% ; device-class friendly name 
[HKR,,Installer32,,"class-installer.dll,class-entry-point"] 
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
HKR,,Icon,,"icon-number" 
[HKR,,SilentInstall,,1]
[HKR,,NoInstallClass,,1]
[HKR,,NoDisplayClass,,1]

System używa określonej ikony do reprezentowania instalatora dla użytkownika.

  • Jeśli wartość Ikona jest dodatnia, reprezentuje identyfikator zasobu dla zasobu. Zasób jest wyodrębniany z biblioteki DLL instalatora klasy, jeśli określono klucz Installer32 lub z biblioteki DLL strony właściwości, jeśli określono klucz EnumPropPages32. Wartość "0" reprezentuje pierwszą ikonę w dll. Wartość "1" jest zarezerwowana.
  • Jeśli wartość Ikona jest ujemna, wartość bezwzględna jest identyfikatorem zasobu ikony w SetupApi.DLL.

Ustawienie wstępnie zdefiniowanych wstępnie wpisów wartości SilentInstall, NoDisplayClass i NoInstallClass wartości logicznej w kluczu rejestru specyficznym dla klasy ma następujące skutki:

  • Ustawienie polecenia SilentInstall powoduje, że instalatory nie wysyłają żadnych komunikatów podręcznych do użytkownika, który wymaga odpowiedzi podczas instalowania urządzeń tej klasy, czy określono w sekcjach DDInstall pliku INF instalatora klasy lub w oddzielnych plikach INF dla urządzeń, które deklarują się samodzielnie tej klasy, ustawiając tę samą specyfikację ClassGuid={ClassGUID} w odpowiednich sekcjach wersji. Na przykład instalatory klas systemowych urządzeń CD-ROM i dysków oraz instalatora klasy portów równoległych systemu ustawić SilentInstall w odpowiednich kluczach rejestru.

    Jeśli instalator specyficzny dla klasy wymaga ponownego uruchomienia komputera dla dowolnego zainstalowanego urządzenia, sekcja add-registry specyficzna dla klasy w inF nie może mieć tego wpisu wartości.

  • Ustawienie klasy NoDisplayClass pomija wyświetlanie widocznego przez użytkownika wszystkich urządzeń tej klasy przez Menedżer urządzeń. Na przykład instalatory klas systemowych dla drukarek i sterowników sieciowych (w tym klientów, usług i protokołów) ustawiają wartość NoDisplayClass w odpowiednich kluczach rejestru.

  • Ustawienie NoInstallClass oznacza, że żadne urządzenie tego typu nigdy nie będzie wymagać ręcznej instalacji przez użytkownika końcowego. Na przykład instalatory klas systemowych dla wyłącznie urządzeń Plug and Play (PnP) ustawiają wartość NoInstallClass w odpowiednich kluczach rejestru.

Sekcja ClassInstall32 może zawierać dyrektywy AddReg , aby ustawić właściwości DeviceType, DeviceCharacteristics i Security dla urządzeń w swojej klasie konfiguracji. Aby uzyskać więcej informacji, zobacz dyrektywę INF AddReg .

Examples

W tym przykładzie przedstawiono sekcję ClassInstall32 wraz z nazwaną sekcją odwołującą się do dyrektywy AddReg.

[ClassInstall32] 
AddReg=example_class_addreg

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,Icon,,"-1"

Z kolei w tym przykładzie skonfigurowaliśmy dostawcę strony właściwości specyficznej dla klasy. Ta funkcja INF ustawia również wpisy wartości SilentInstall i NoInstallClass w kluczu klasy na TRUE (1).

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,EnumPropPages32,,"ExampleBinary.Dll,ExamplePropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"

Informacje dodatkowe

AddProperty

DodajReg

BitReg

CopyFiles

DDInstall

DelFiles

DelProperty

DelReg

Ini2Reg

Modele

RenFiles

SetupDiBuildClassInfoList

UpdateIniFields

UpdateInis

Wersja