Controllo dell'accesso ai dispositivi
Il processo host del driver UMDF viene eseguito nel contesto dell'account del servizio locale. Il driver potrebbe dover accedere ad altri dispositivi o componenti che non consentono l'accesso generalizzato all'account del servizio locale.
A partire da Windows 8, il sistema operativo include un identificatore di sicurezza (SID) che identifica i driver UMDF. Includendo questo SID nei requisiti di sicurezza dei dispositivi, i dispositivi o i componenti possono consentire l'accesso ai driver UMDF impedendo l'accesso da altre richieste dall'account del servizio locale.
Il SID per i driver UMDF è SDDL_USER_MODE_DRIVERS e la definizione è in sddl.h. La rappresentazione completa di questo SID è:
S-1-5-84-0-0-0-0-0
L'abbreviazione per questo SID è UD. Questa abbreviazione è disponibile a partire da Windows 8.
Un driver esterno al driver UMDF può specificare il SID nel file INF o nel driver, prima di creare l'oggetto dispositivo.
Specifica della sicurezza del dispositivo in un file INF
Nel file INF è possibile usare il formato abbreviato o il formato completamente specificato del SID.
Il modulo abbreviato è disponibile a partire da Windows 8:
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)"
Nei sistemi operativi precedenti alla Windows 8 è necessario usare il modulo completamente specificato:
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;S-1-5-84-0-0-0-0-0)"
Specifica della sicurezza del dispositivo in un driver KMDF
Per specificare i requisiti di sicurezza nel driver, è necessario usare il modulo abbreviato, che è disponibile solo a partire da Windows 8. Ad esempio, un driver KMDF può abilitare l'accesso al dispositivo dai driver UMDF usando quanto segue:
RtlInitUnicodeString(&sddlString, L"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)");
status = WdfDeviceInitAssignSDDLString(DeviceInit, &sddlString);