Función WdfDeviceInitAssignSDDLString (wdfdevice.h)

[Solo se aplica a KMDF]

El método WdfDeviceInitAssignSDDLString asigna una configuración de seguridad para un dispositivo.

Sintaxis

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

Parámetros

[in] DeviceInit

Puntero a una estructura de WDFDEVICE_INIT .

[in, optional] SDDLString

Puntero a una estructura UNICODE_STRING que describe una cadena Unicode. Esta cadena es una representación SDDL de un descriptor de seguridad.

Valor devuelto

Si la operación se realiza correctamente, WdfDeviceInitAssignSDDLString devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES
El sistema no puede asignar espacio para almacenar el nombre del dispositivo.

Comentarios

El controlador puede especificar una configuración de seguridad mediante un subconjunto del lenguaje de definición de descriptores de seguridad (SDDL). El archivo Wdmsec.h define un conjunto de constantes con formato SDDL_DEVOBJ_XXX que puede usar. Para obtener más información sobre los descriptores de seguridad y SDDL, consulte Protección de objetos de dispositivo.

Los administradores del sistema pueden invalidar el descriptor de seguridad especificado agregando un descriptor de seguridad al Registro. Para obtener más información, consulte IoCreateDeviceSecure.

Antes de llamar a WdfDeviceInitAssignSDDLString, el controlador debe llamar a WdfDeviceInitAssignName o debe llamar a WdfDeviceInitSetCharacteristics y especificar FILE_AUTOGENERATED_DEVICE_NAME, ya que no se puede proporcionar un descriptor de seguridad para un objeto de dispositivo sin nombre.

Si el controlador llama a WdfDeviceInitAssignSDDLString, debe hacerlo antes de llamar a WdfDeviceCreate. Para obtener más información sobre cómo llamar a WdfDeviceCreate, vea Creating a Framework Device Object.

Para obtener más información sobre los problemas de seguridad, consulte Problemas de seguridad para controladores de Framework-Based.

Si va a escribir un controlador UMDF, debe modificar el archivo INF del controlador para proporcionar un descriptor de seguridad adecuado para la pila. Para obtener más información, consulte Protección de objetos de dispositivo. Para obtener más información sobre cómo usar el Registro, vea Establecer propiedades del Registro de objetos de dispositivo durante la instalación.

Ejemplos

En el ejemplo de código siguiente se asigna una configuración de seguridad para un dispositivo.

NTSTATUS status;

status = WdfDeviceInitAssignSDDLString(
                                       pDeviceInit,
                                       &SDDL_DEVOBJ_SYS_ALL_ADM_ALL
                                       );

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Encabezado wdfdevice.h (incluir Wdf.h)
Library Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos).
IRQL PASSIVE_LEVEL
Reglas de cumplimiento 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)