Dela via


Styra enhetsåtkomst

Värdprocessen för UMDF-drivrutinen körs i kontexten för det lokala tjänstkontot. Drivrutinen kan behöva komma åt andra enheter eller komponenter som inte medger allmän åtkomst till det lokala tjänstkontot.

Från och med Windows 8 innehåller operativsystemet en säkerhetsidentifierare (SID) som identifierar UMDF-drivrutiner. Genom att inkludera detta SID i sina enhetssäkerhetskrav kan enheter eller komponenter tillåta åtkomst till UMDF-drivrutiner samtidigt som åtkomst från andra begäranden från det lokala tjänstkontot förhindras.

SID för UMDF-drivrutiner är SDDL_USER_MODE_DRIVERS och definitionen finns i sddl.h. Den fullständiga representationen av detta SID är:

S-1-5-84-0-0-0-0-0

Förkortningen för detta SID är UD. Den här förkortningen är tillgänglig från och med Windows 8.

En drivrutin utanför UMDF-drivrutinen kan ange SID antingen i inf-filen eller i drivrutinen innan enhetens objekt skapas.

Ange enhetssäkerhet i en INF-fil

I INF-filen kan du använda antingen det förkortade formuläret eller den fullständigt angivna formen av SID.

Det förkortade formuläret är tillgängligt från och med Windows 8:

HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)"   

På operativsystem som är tidigare än Windows 8 måste du använda det fullständigt angivna formuläret:

HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;S-1-5-84-0-0-0-0-0)"       

Ange enhetssäkerhet i en KMDF-drivrutin

Om du vill ange säkerhetskrav i drivrutinen måste du använda det förkortade formuläret, som endast är tillgängligt från och med Windows 8. En KMDF-drivrutin kan till exempel ge åtkomst till enheten från UMDF-drivrutiner med hjälp av följande:

RtlInitUnicodeString(&sddlString, L"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)");
status = WdfDeviceInitAssignSDDLString(DeviceInit, &sddlString);