Controlando o acesso ao dispositivo
O processo de host do driver UMDF é executado no contexto da conta de serviço local. Talvez o driver precise acessar outros dispositivos ou componentes que não permitam acesso generalizado à conta de serviço local.
Começando no Windows 8, o sistema operacional inclui um SID (identificador de segurança) que identifica drivers UMDF. Ao incluir esse SID em seus requisitos de segurança do dispositivo, dispositivos ou componentes podem permitir o acesso a drivers UMDF, impedindo o acesso de outras solicitações da conta de serviço local.
O SID para drivers UMDF é SDDL_USER_MODE_DRIVERS e a definição está em sddl.h. A representação completa desse SID é:
S-1-5-84-0-0-0-0-0
A abreviação desse SID é UD. Essa abreviação está disponível a partir de Windows 8.
Um driver externo ao driver UMDF pode especificar o SID em seu arquivo INF ou no driver, antes de criar o objeto do dispositivo.
Especificando a segurança do dispositivo em um arquivo INF
No arquivo INF, você pode usar o formulário abreviado ou a forma totalmente especificada do SID.
O formulário abreviado está disponível a partir de Windows 8:
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)"
Em sistemas operacionais anteriores a Windows 8, você deve usar o formulário totalmente especificado:
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;S-1-5-84-0-0-0-0-0)"
Especificando a segurança do dispositivo em um driver KMDF
Para especificar os requisitos de segurança no driver, você deve usar o formulário abreviado, que só está disponível a partir de Windows 8. Por exemplo, um driver KMDF pode habilitar o acesso ao seu dispositivo de drivers UMDF usando o seguinte:
RtlInitUnicodeString(&sddlString, L"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)");
status = WdfDeviceInitAssignSDDLString(DeviceInit, &sddlString);