Dela via


Ta bort co-installers från drivrutinspaket

Försiktighet

Från och med januari 2023 signeras drivrutinspaket som innehåller ett saminstallationsprogram inte längre av portalen Hardware Developer Center. Mer information om kravet finns i Specifikationer och principer för Windows Maskinvarukompatibilitetsprogram, specifikt version 22H2-principer, avsnitt Device.DevFund.INF.Deklarativa.

Den här sidan tar upp vanliga orsaker till att saminstallationer finns i ett drivrutinspaket och erbjuder mekanismer för att utföra samma uppgift utan ett saminstallationsprogram.

WDF- och WinUSB-medinstallationsprogram

WDF-installationsprogrammet och WinUSB-installationsprogrammet krävs inte på något system som kör Windows 10 och senare. Referenser till WDF-installationsprogrammet kan tas bort utan ytterligare arbete. Referenserna för WinUSB-saminstallationsprogrammet kan tas bort och WinUSB bör refereras från drivrutinspaketet INF med hjälp av direktiven Inkludera och Behov.

vägledning för WinUSB-drivrutinspaket

Installera programvara som presenterar användargränssnittet

I stället för att starta ett program under en installation tillhandahåller du ett universellt Windows Platform-program som installeras med hjälp av ett AddSoftware-direktiv från ett DDInstall.Software-avsnitt av drivrutinspaketet INF.

Mer information finns i Para ihop en drivrutin med en UWP-app (Universal Windows Platform). Ett AddSoftware-direktiv stöds i Windows 10 version 1703 och senare versioner av Windows.

Mer information finns i Installera tillhörande programvara nedan.

Ställa in användarvänliga enhetsnamn

INF-fil

Ett INF-drivrutinspaket kan ange enhetens användarvänliga namn på följande sätt:

[DDInstall.HW]
AddReg = FriendlyName_AddReg

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

Körtid

Det vänliga namnet kan anges av drivrutinen under fasen Starta IRP eller PrepareHardware genom att ange egenskapen DEVPKEY_Device_FriendlyName med något av följande API:er.

Andra enhetsinställningar/konfigurationer

När det är möjligt kan drivrutinen ändra enhetsinställningarna och konfigurationen under Starta IRP--fasen eller PrepareHardware--fasen. När du ändrar tillstånd vid exekvering bör drivrutinen följa isoleringskraven för drivrutinspaket. Dessa krav innehåller vägledning om drivrutinskonfiguration och tillståndslayout och hjälper till att framtidssäkra drivrutinen genom att göra den mer motståndskraftig mot externa ändringar, enklare att uppdatera och enklare att installera.

För inställningar och konfiguration som inte kan anges i själva drivrutinen kan ett drivrutinspaket även innehålla körningskomponenter i användarläge som ändrar inställningarna och konfigurationen. Det kan vara en användarinriktad app eller en Win32-tjänst som uppdaterar konfigurationen. Information om hur du inkluderar programvara i användarläge för användning med en enhet finns i Using a Component INF File.

Om en beständig komponent, till exempel en tjänst, används kontrollerar du att dess funktioner är nödvändiga och inte kan utföras på ett mindre resursintensivt sätt, till exempel i ett drivrutinspaket INF eller i själva drivrutinen. Information om hur du ser till att en tjänst endast körs när relevanta enheter är anslutna finns i Tjänstutlösare, Win32-tjänster som interagerar med enheteroch Registrering för meddelanden om enhetsgränssnitt. Tjänsten måste också uppfylla de senaste kraven, till exempel att skicka API Validator.

Installera associerad programvara

Den komponentiserade delen av DCH-drivrutinskraven introducerade ett koncept som kallas SoftwareComponent, som är en mekanism för att frikoppla installationen av en enhetsdrivrutin från dess associerade programvara. När en programvarukomponent skapas av INF skapar den automatiskt en underordnad enhet som mappar till programvarukomponenten. Den här underordnade enheten kommer att finnas i syfte att installera programvaran som är associerad med den överordnade enheten. Den här programvaran kan installeras och uppdateras oberoende av huvudenheten och drivrutinen.

I ett SoftwareComponent-drivrutinspaket INF använder den rekommenderade mekanismen för att installera programvara ett AddSoftware-direktiv. Detta utlöser nedladdning och installation av programvara från Windows Store.

Beroenden mellan drivrutiner och enheter

Beroenden för enhetsstart/uppräkningsordning

I så stor utsträckning som möjligt bör beroenden mellan enheter eller krav på startordning undvikas.

För ACPI-enumererade enheter kan beroendeobjektet (_DEP) användas i ACPI:s inbyggda programvara för att tvinga fram startordningen för enheter. För mer information, se Device Management Namespace.

Drivrutiner kan svara på IRP_MN_QUERY_DEVICE_RELATIONS IRP för att definiera relationer mellan enheter, till exempel relationer för borttagning. Mer information finns i IRP_MN_QUERY_DEVICE_RELATIONS.

Installationsberoenden för drivrutinspaket

CopyInf-direktivet kan användas för att även installera ytterligare ett drivrutinspaket under samma INSTALLATIONS-API-anrop som en annan drivrutin. Drivrutinspaketet som skickas till installations-API:et installeras före eventuella CopyInf-refererade drivrutinspaket, men drivrutinspaket som refereras av CopyInf är inte garanterade att installeras i någon viss ordning.

Konfigurera komponenter från flera leverantörer som paketeras i ett enda drivrutinspaket

Drivrutinspaket stöder en typ av drivrutinpaket INF som kallas tilläggs-INF. Det här är en INF-fil som är särskilt utformad för att utöka och utöka funktionerna i ett "bas"-drivrutinspaket INF. Ett tillägg kanske inte tillhandahåller funktionsdrivrutinen för enheten, men kan annars använda andra direktiv eller skriva andra inställningar för en enhet. Under en drivrutinsinstallation väljs ett enkelt basdrivrutinspaket INF med drivrutinsrankning för att tillhandahålla funktionaliteten för enheten, och därefter väljs alla tilläggs-INF-filer för enheten. Mer information finns i Using an extension INF file.

Ett vanligt paradigm för användning av tilläggsdrivrutinspaket-INF:er är att maskinvarutillverkaren tillhandahåller basdrivrutinspaketet INF och att en OEM-leverans som ingår i ett system skapar ett tilläggsdrivrutinspaket INF som anpassar det för det systemet.

Installera/orkestrera uppdateringar av inbyggd programvara

Olika mekanismer för uppdatering av inbyggd programvara rekommenderas beroende på vilken typ av enhet som uppdateras. Var och en av följande kan användas för att leverera och installera en uppdatering av inbyggd programvara via Windows Update.

Ej flyttbara

Uppdateringsplattformen för UEFI-inbyggd programvara är utformad för att uppdatera komponenter i ett system som inte kan tas bort, till exempel systemets inbyggda programvara. Mer information finns i UEFI Firmware Update Platform.

Avtagbar

För flyttbara enheter som HID- eller USB-enheter möjliggör CFU-modellen säkra uppdateringar av inbyggd programvara. Mer information finns i Component Firmware Update.

Anpassad implementering

Du kan också skriva en anpassad drivrutin som uppdaterar enhetens inbyggda programvara efter förarens gottfinnande. Mer information finns i drivrutin för uppdatering av anpassad inbyggd programvara.