Função WdfDeviceInitAssignSDDLString (wdfdevice.h)

[Aplica-se somente ao KMDF]

O método WdfDeviceInitAssignSDDLString atribui uma configuração de segurança para um dispositivo.

Sintaxe

NTSTATUS WdfDeviceInitAssignSDDLString(
  [in]           PWDFDEVICE_INIT  DeviceInit,
  [in, optional] PCUNICODE_STRING SDDLString
);

Parâmetros

[in] DeviceInit

Um ponteiro para uma estrutura WDFDEVICE_INIT .

[in, optional] SDDLString

Um ponteiro para uma estrutura UNICODE_STRING que descreve uma cadeia de caracteres Unicode. Essa cadeia de caracteres é uma representação SDDL de um descritor de segurança.

Retornar valor

Se a operação for bem-sucedida, WdfDeviceInitAssignSDDLString retornará STATUS_SUCCESS. Os valores retornados adicionais incluem:

Código de retorno Descrição
STATUS_INSUFFICIENT_RESOURCES
O sistema não pode alocar espaço para armazenar o nome do dispositivo.

Comentários

Seu driver pode especificar uma configuração de segurança usando um subconjunto de SDDL (Linguagem de Definição de Descritor de Segurança). O arquivo Wdmsec.h define um conjunto de constantes formatadas em SDDL_DEVOBJ_XXX que você pode usar. Para obter mais informações sobre descritores de segurança e SDDL, consulte Protegendo objetos de dispositivo.

Os administradores do sistema podem substituir o descritor de segurança especificado adicionando um descritor de segurança ao registro. Para obter mais informações, consulte IoCreateDeviceSecure.

Antes de chamar WdfDeviceInitAssignSDDLString, o driver deve chamar WdfDeviceInitAssignName ou chamar WdfDeviceInitSetCharacteristics e especificar FILE_AUTOGENERATED_DEVICE_NAME, pois você não pode fornecer um descritor de segurança para um objeto de dispositivo sem nome.

Se o driver chamar WdfDeviceInitAssignSDDLString, ele deverá fazer isso antes de chamar WdfDeviceCreate. Para obter mais informações sobre como chamar WdfDeviceCreate, consulte Criando um objeto de dispositivo framework.

Para obter mais informações sobre problemas de segurança, consulte Problemas de segurança para drivers de Framework-Based.

Se você estiver escrevendo um driver UMDF, deverá modificar o arquivo INF do driver para fornecer um descritor de segurança apropriado para a pilha. Para obter mais informações, consulte Protegendo objetos de dispositivo. Para obter mais informações sobre como usar o registro, consulte Configurando propriedades do Registro de Objeto do Dispositivo durante a instalação.

Exemplos

O exemplo de código a seguir atribui uma configuração de segurança para um dispositivo.

NTSTATUS status;

status = WdfDeviceInitAssignSDDLString(
                                       pDeviceInit,
                                       &SDDL_DEVOBJ_SYS_ALL_ADM_ALL
                                       );

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Cabeçalho wdfdevice.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)