Delen via


Co-installatieprogramma's verwijderen uit stuurprogrammapakketten

Voorzichtigheid

Vanaf januari 2023 worden stuurprogrammapakketten met een co-installatieprogramma niet meer ondertekend door de Hardware Developer Center-portal. Raadpleeg voor meer informatie over de vereiste specificaties en beleidsregels van het Windows-hardwarecompatibiliteitsprogramma, met name de beleidsregels van versie 22H2, sectie Device.DevFund.INF.Declaratieve.

Deze pagina bevat veelvoorkomende redenen voor co-installatieprogramma's die aanwezig zijn in een stuurprogrammapakket en biedt mechanismen voor het uitvoeren van dezelfde taak zonder co-installatieprogramma.

WDF- en WinUSB Co-installers

Het co-installatieprogramma van WDF en winUSB zijn niet vereist op een systeem met Windows 10 en hoger. De referenties van het co-installatieprogramma van WDF kunnen zonder extra werk worden verwijderd. De verwijzingen naar de WinUSB-co-installer kunnen worden verwijderd en WinUSB moet worden verwezen vanuit het INF-bestand van het stuurprogrammapakket met behulp van de directives Include en Needs.

richtlijnen voor winUSB-stuurprogrammapakketten

Software installeren die de gebruikersinterface presenteert

In plaats van een toepassing te starten tijdens een installatie, moet u een Universal Windows Platform-toepassing bieden die is geïnstalleerd met behulp van een AddSoftware-instructie vanuit een sectie DDInstall.Software van het stuurprogrammapakket INF.

Zie Een stuurprogramma koppelen met een UWP-app (Universal Windows Platform)voor meer informatie. Een AddSoftware-instructie wordt ondersteund in Windows 10, versie 1703 en nieuwere versies van Windows.

Zie Gekoppelde software installeren hieronder voor meer informatie.

Apparaatvriendelijke namen instellen

INF-bestand

Een stuurprogrammapakket INF kan de gebruiksvriendelijke naam van het apparaat als volgt instellen:

[DDInstall.HW]
AddReg = FriendlyName_AddReg

[FriendlyName_AddReg]
HKR,,FriendlyName,, "Device Friendly Name"

Uitvoeringstijd

De beschrijvende naam kan door het stuurprogramma worden ingesteld tijdens de Start IRP-fase of de PrepareHardware-fase door de eigenschap DEVPKEY_Device_FriendlyName in te stellen met een van de volgende API's.

Andere apparaatinstellingen/configuraties

Indien mogelijk kan de bestuurder de apparaatinstellingen en configuratie binnen het stuurprogramma wijzigen bij Start IRP of bij de PrepareHardware-fase. Wanneer de status tijdens runtime wordt gewijzigd, moet het stuurprogramma voldoen aan de isolatievereisten voor stuurprogrammapakketten. Deze vereisten bevatten de richtlijnen voor de configuratie en statusindeling van stuurprogramma's en helpen het stuurprogramma toekomstbestendiger te maken door het bestand toleranter te maken voor externe wijzigingen, gemakkelijker bij te werken en eenvoudiger te installeren.

Voor instellingen en configuratie die niet binnen het stuurprogramma zelf kunnen worden ingesteld, kan een stuurprogrammapakket ook runtimeonderdelen in de gebruikersmodus bevatten die de instellingen en configuratie wijzigen. Dit kan een gebruikersgerichte app of een Win32-service zijn waarmee de configuratie wordt bijgewerkt. Zie Een onderdeel INF-bestand gebruikenvoor informatie over het toevoegen van gebruikersmodus-software voor gebruik met een apparaat.

Als een permanent onderdeel zoals een service wordt gebruikt, moet u ervoor zorgen dat de functionaliteit ervan nodig is en niet op een minder resource-intensieve manier kan worden uitgevoerd, zoals binnen een stuurprogrammapakket INF of binnen het stuurprogramma zelf. Zie servicetriggers, Win32-services die communiceren met apparatenen Registreren voor apparaatinterfacemeldingenvoor informatie over hoe u ervoor kunt zorgen dat een service alleen wordt uitgevoerd wanneer relevante apparaten zijn verbonden. De service moet ook voldoen aan de meest recente vereisten, zoals slagen voor API Validator.

Gekoppelde software installeren

Het gedeelte 'Componentized' van de DCH-stuurprogrammavereisten introduceerde een concept genaamd SoftwareComponent, een mechanisme om de installatie van een apparaatstuurprogramma los te koppelen van de bijbehorende software. Wanneer door de INF een softwareonderdeel wordt gemaakt, wordt er automatisch een subapparaat aangemaakt dat aan het softwareonderdeel is gekoppeld. Dit kinderapparaat zal bestaan met als doel de installatie van de software die is gekoppeld aan het hoofdapparaat. Deze software kan onafhankelijk van het hoofdapparaat en stuurprogramma worden geïnstalleerd en bijgewerkt.

Binnen een SoftwareComponent-stuurprogrammapakket INF is het aanbevolen mechanisme voor het installeren van software met behulp van een AddSoftware-instructie. Hiermee wordt het downloaden en installeren van software vanuit de Windows Store geactiveerd.

Afhankelijkheden tussen stuurprogramma's en apparaten

Afhankelijkheden voor het starten/inventariseren van apparaten

Voor zover mogelijk moeten afhankelijkheden tussen apparaten of beginvolgordevereisten worden vermeden.

Voor ACPI-geïnventariseerde apparaten kan het afhankelijkheidsobject (_DEP) worden gebruikt in de ACPI-firmware om de startvolgorde van apparaten af te dwingen. Zie Naamruimte voor apparaatbeheervoor meer informatie.

Stuurprogramma's kunnen reageren op de IRP_MN_QUERY_DEVICE_RELATIONS IRP om relaties tussen apparaten te definiëren, zoals relaties met betrekking tot verwijdering. Zie IRP_MN_QUERY_DEVICE_RELATIONSvoor meer informatie.

Afhankelijkheden van stuurprogrammapakket installeren

De CopyInf Directive kan worden gebruikt om ook een extra stuurprogrammapakket te installeren tijdens dezelfde installatie-API-aanroep als een ander stuurprogramma. Het stuurprogrammapakket dat aan de installatie-API wordt doorgegeven, wordt geïnstalleerd voordat er stuurprogrammapakketten waarnaar wordt verwezen door CopyInf worden geïnstalleerd, maar stuurprogrammapakketten waarnaar wordt verwezen door CopyInf, worden niet gegarandeerd geïnstalleerd in een bepaalde volgorde.

Onderdelen van meerdere leveranciers configureren die zijn gebundeld in één stuurprogrammapakket

Stuurprogrammapakketten ondersteunen een type stuurprogrammapakket INF genaamd een extensie INF. Dit is een INF-bestand dat speciaal is ontworpen om de functionaliteit van een "base"-stuurprogrammapakket INF te versterken en uit te breiden. Een extensie kan het functiestuurprogramma voor het apparaat niet opgeven, maar kan anders andere instructies gebruiken of andere instellingen voor een apparaat schrijven. Tijdens de installatie van een stuurprogramma wordt één basisstuurprogrammapakket INF geselecteerd met behulp van stuurprogrammaclassificatie om de functionaliteit voor het apparaat te bieden. Vervolgens worden extensie-INF's geselecteerd voor het apparaat. Zie Een INF-extensiebestand gebruikenvoor meer informatie.

Een veelvoorkomend paradigma voor het gebruik van extensiestuurprogrammapakket-INF's is dat de hardwarefabrikant het basisstuurprogrammapakket INF levert en dat een OEM, die dat onderdeel in een systeem implementeert, een extensiestuurprogrammapakket-INF maakt om het aan dat systeem aan te passen.

Firmware-updates installeren/organiseren

Verschillende mechanismen voor firmware-updates worden aanbevolen, afhankelijk van de aard van het apparaat dat wordt bijgewerkt. Elk van de volgende opties kan worden gebruikt voor het verzenden en installeren van een firmware-update via Windows Update.

Niet-verwisselbaar

Het UEFI-firmware-updateplatform is ontworpen om onderdelen van een systeem bij te werken die niet kunnen worden verwijderd, zoals de systeemfirmware. Zie UEFI Firmware Update Platformvoor meer informatie.

Afneembaar

Voor verwisselbare apparaten, zoals HID- of USB-apparaten, maakt het CFU-model veilige firmware-updates mogelijk. Zie firmware-update voor onderdelen voor meer informatie.

Aangepaste implementatie

Er kan ook een aangepast stuurprogramma worden geschreven dat naar eigen goeddunken de firmware van het apparaat bijwerkt. Voor meer informatie, zie Aangepaste firmware bijwerkstuurprogramma.