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.)