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