Поделиться через


Функция WdfDeviceInitAssignSDDLString (wdfdevice.h)

[Относится только к KMDF]

Метод WdfDeviceInitAssignSDDLString назначает параметр безопасности для устройства.

Синтаксис

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

Параметры

[in] DeviceInit

Указатель на структуру WDFDEVICE_INIT .

[in, optional] SDDLString

Указатель на структуру UNICODE_STRING , описывающую строку Юникода. Эта строка представляет собой SDDL-представление дескриптора безопасности.

Возвращаемое значение

Если операция выполнена успешно, WdfDeviceInitAssignSDDLString возвращает STATUS_SUCCESS. К дополнительным возвращаемым значениям относятся:

Код возврата Описание
STATUS_INSUFFICIENT_RESOURCES
Система не может выделить место для хранения имени устройства.

Комментарии

Драйвер может указать параметр безопасности с помощью подмножества языка определения дескриптора безопасности (SDDL). Файл Wdmsec.h определяет набор констант в формате SDDL_DEVOBJ_XXX, которые можно использовать. Дополнительные сведения о дескрипторах безопасности и SDDL см. в разделе Защита объектов устройств.

Системные администраторы могут переопределить указанный дескриптор безопасности, добавив дескриптор безопасности в реестр. Дополнительные сведения см. в разделе IoCreateDeviceSecure.

Перед вызовом WdfDeviceInitAssignSDDLString драйвер должен вызвать WdfDeviceInitAssignName или вызвать WdfDeviceInitSetCharacteristics и указать FILE_AUTOGENERATED_DEVICE_NAME, так как вы не можете предоставить дескриптор безопасности для неименованного объекта устройства.

Если драйвер вызывает WdfDeviceInitAssignSDDLString, он должен сделать это перед вызовом WdfDeviceCreate. Дополнительные сведения о вызове WdfDeviceCreate см. в разделе Создание объекта устройства платформы.

Дополнительные сведения о проблемах безопасности см. в статье Проблемы безопасности для драйверов Framework-Based.

Если вы пишете драйвер UMDF, необходимо изменить INF-файл драйвера, чтобы предоставить соответствующий дескриптор безопасности для стека. Дополнительные сведения см. в разделе Защита объектов устройств. Дополнительные сведения об использовании реестра см. в разделе Настройка свойств реестра объектов устройства во время установки.

Примеры

В следующем примере кода назначается параметр безопасности для устройства.

NTSTATUS status;

status = WdfDeviceInitAssignSDDLString(
                                       pDeviceInit,
                                       &SDDL_DEVOBJ_SYS_ALL_ADM_ALL
                                       );

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfdevice.h (включая Wdf.h)
Библиотека Wdf01000.sys (см. раздел Управление версиями библиотеки Платформы).
IRQL PASSIVE_LEVEL
Правила соответствия 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)