Partilhar via


Controlando o acesso ao dispositivo

O processo de host do driver UMDF é executado no contexto da conta de serviço local. O driver pode precisar acessar outros dispositivos ou componentes que não permitem acesso generalizado à conta de serviço local.

A partir do Windows 8, o sistema operacional inclui um identificador de segurança (SID) que identifica drivers UMDF. Ao incluir esse SID em seus requisitos de segurança do dispositivo, os dispositivos ou componentes podem permitir o acesso aos drivers UMDF enquanto impedem 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 deste SID é:

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

A abreviatura deste SID é UD. Esta abreviatura está disponível a partir do Windows 8.

Um driver externo ao driver UMDF pode especificar o SID em seu arquivo INF ou no driver, antes de criar o objeto de dispositivo.

Especificando a segurança do dispositivo em um arquivo INF

No arquivo INF, você pode usar a forma abreviada ou a forma totalmente especificada do SID.

O formulário abreviado está disponível a partir do Windows 8:

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

Em sistemas operacionais anteriores ao 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 do Windows 8. Por exemplo, um driver KMDF pode habilitar o acesso ao seu dispositivo a partir de drivers UMDF usando o seguinte:

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