Функция 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. К дополнительным возвращаемым значениям относятся:
Код возврата | Описание |
---|---|
|
Система не может выделить место для хранения имени устройства. |
Комментарии
Драйвер может указать параметр безопасности с помощью подмножества языка определения дескриптора безопасности (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) |