Dela via


Styra enhetsåtkomst (WDM)

Åtkomst till en enhet styrs av en säkerhetsbeskrivning (och den ACL som den innehåller). En säkerhetsbeskrivning för ett enhetsobjekt kan anges när enhetsobjektet skapas eller anges i registret.

Styra enhetsåtkomst för WDM-drivrutiner

När en WDM-drivrutin (förutom vissa bussdrivrutiner) skapar ett enhetsobjekt avgör Plug and Play-hanteraren en säkerhetsbeskrivning för enheten. Åtgärdsordningen är följande.

  1. PnP-chefen anropar förarens AddDevice-rutin .

  2. Drivrutinens AddDevice-rutin anropar IoCreateDevice för att skapa enhetsobjektet och koppla det till enhetsobjektstacken.

  3. PnP-hanteraren uppdaterar säkerhetsbeskrivningen för det nyligen skapade enhetsobjektet.

För en WDM-drivrutin avgör PnP-hanteraren säkerhetsbeskrivningen för enhetsobjektet på följande sätt.

  1. Om enheten har en säkerhetsbeskrivningsinställning i registret tillämpas den på alla objekt i enhetsstacken.

  2. Om enhetens installationsklass annars har en säkerhetsbeskrivningsinställning i registret tillämpas den på alla objekt i enhetsstacken.

  3. Annars lämnar PnP-hanteraren standardsäkerhetsbeskrivningen för varje objekt oförändrad. I det här fallet bestäms standardsäkerhetsbeskrivningen för stacken av enhetstypen och enhetsegenskaperna för PDO:n.

För de flesta enhetstyper och egenskaper ger standardsäkerhetsbeskrivningen fullständig åtkomst (GENERIC_ALL) till administratörer och läser, skriver och kör åtkomst (GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE) åtkomst till alla andra.

Mer information om hur du anger en säkerhetsbeskrivning för en enhets- eller enhetsinstallationsklass i registret finns i Ange egenskaper för enhetsobjekt i registret.

Om en enhet körs i raw-läge kan PnP-hanteraren inte fastställa en säkerhetsbeskrivning för enhetsobjektet. I så fall måste busschauffören ange en säkerhetsbeskrivning. se nedan.

Styra enhetsåtkomst för WDM Bus-drivrutiner

En WDM-busschaufför måste tillhandahålla en säkerhetsbeskrivning för PDO för varje enhet som kan köras i raw-läge. Använd IoCreateDeviceSecure för att skapa enhetsobjektet med en säkerhetsbeskrivning.

Om bussdrivrutinen inte använder en enhet i raw-läge krävs det inte att en säkerhetsbeskrivning anges. PnP-hanteraren bestämmer säkerhetsbeskrivningen enligt beskrivningen ovan. Bussdrivrutinen kan ange en säkerhetsbeskrivning om den måste se till att dess PDO:er har strängare säkerhetsinställningar än standardbeskrivningen. Alla beskrivningar angivna av bussdrivrutinen åsidosätts av inställningarna i registret.

Mer information om hur du skapar enhetsobjekt finns i Skapa ett enhetsobjekt.

Styra enhetsåtkomst för icke-WDM-drivrutiner

Icke-WDM-drivrutiner måste ange en standardsäkerhetsbeskrivning och klass-GUID för alla namngivna enhetsobjekt som de skapar.

Använd rutinen IoCreateDeviceSecure för att skapa det namngivna enhetsobjektet och ange standardsäkerhetsbeskrivningen och klass-GUID för den enheten. Säkerhetsbeskrivningen anges i en delmängd av SDDL. Mer information finns i SDDL för enhetsobjekt.

Systemet åsidosätter standardsäkerhetsbeskrivningen med alla säkerhetsinställningar i registret för den angivna klassens GUID. Drivrutinen måste ange ett eget unikt GUID för enheten. Använd GuidGen-verktyget för att generera ett unikt GUID. (GuidGen ingår i Microsoft Windows SDK.)