Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I Windows Driver Model (WDM) har varje enhetsobjekt ett associerat namnområde. Namn i enhetens namnområde är sökvägar som börjar med enhetens namn. För en enhet med namnet "\Device\DeviceName" består dess namnområde av ett namn på formuläret "\Device\DeviceName\FileName". (För ett filsystem är FileName ett faktiskt namn på en fil i filsystemet.)
En WDM-drivrutin tar emot öppna begäranden för alla namn i enhetens namnområde. Drivrutinen behandlar en öppen begäran för "\Device\DeviceName" som en öppning av själva enhetsobjektet. Om drivrutinen implementerar stöd för öppna begäranden i enhetens namnområde behandlar den en öppen begäran för "\Device\DeviceName\FileName" som en öppning av en "fil" i enhetsobjektets namnområde (där begreppet "fil" för enheten bestäms av drivrutinen).
De flesta drivrutiner implementerar inte stöd för öppna åtgärder i enhetens namnområde, men alla drivrutiner måste tillhandahålla säkerhetskontroller för att förhindra obehörig åtkomst till enhetens namnområde. Som standard lämnas säkerhetskontroller för filöppningsbegäranden i enhetens namnområde (till exempel "\Device\DeviceName\FileName") helt upp till drivrutinen – enhetsobjektets ACL kontrolleras inte av operativsystemet.
Om ett enhetsobjekts FILE_DEVICE_SECURE_OPEN egenskap anges tillämpar systemet enhetsobjektets säkerhetsbeskrivning på alla filöppningsbegäranden i enhetens namnområde. Drivrutiner kan ange FILE_DEVICE_SECURE_OPEN när de skapar enhetsobjektet med IoCreateDevice eller IoCreateDeviceSecure. För WDM-drivrutiner kan FILE_DEVICE_SECURE_OPEN också anges i registret. Det kan också anges i registret för enhetsobjekt för icke-WDM-drivrutiner som skapas av IoCreateDeviceSecure. Mer information om hur du anger egenskaper för enhetsobjekt, till exempel enhetsegenskaper i registret, finns i Ange egenskaper för enhetsobjekt i registret. Mer information om enhetsegenskaper finns i Ange enhetsegenskaper.
Drivrutiner för enheter som inte stöder namnområden måste använda någon av två metoder för att säkerställa att filöppningsbegäranden i enhetens namnområde hanteras korrekt:
Drivrutinens enhetsobjekt har den FILE_DEVICE_SECURE_OPEN enhetens egenskapsuppsättning. Drivrutinen kan sedan behandla alla öppna begäranden i enhetens namnområde som en öppen begäran för enhetsobjektet.
Drivrutinen kan misslyckas med att hantera alla IRP_MJ_CREATE förfrågningar som anger en IrpSp->FileObject->FileName parameter vars längd inte är noll. I det här fallet omfattas öppna begäranden för enheten av systemets ACL-kontroll, medan alla filöppningsbegäranden i enhetens namnområde misslyckas av drivrutinen. (Drivrutiner som stöder exklusiv åtkomst måste använda det här alternativet.)
Drivrutiner för enheter som stöder namnområden kan också använda två metoder för att skydda filöppningsbegäranden till enhetens namnområde:
Förarens enhetsobjekt har FILE_DEVICE_SECURE_OPEN som enhetsegenskap. Detta säkerställer att säkerhetsinställningarna för enheten tillämpas enhetligt på enhetens namnområde. Drivrutinen ansvarar för att implementera stöd för namnområdet i sin DRIVER_DISPATCH återanropsfunktion.
Drivrutinen kontrollerar eventuella ACL:er för filnamnet i dess DispatchCreate rutin. (Även i det här fallet bör drivrutinen ange egenskapen FILE_DEVICE_SECURE_OPEN om öppningar i enhetens namnområde kan ha svagare säkerhetsinställningar än enhetsobjektet.)
Den FILE_DEVICE_SECURE_OPEN-egenskapen kontrolleras överst i stacken, så filterenhetsobjekten måste kopiera Egenskaper-medlemmen i nästa nedre enhetsobjekt efter anslutning.