WdfDeviceInitAssignSDDLString 函数 (wdfdevice.h)
[仅适用于 KMDF]
WdfDeviceInitAssignSDDLString 方法为设备分配安全设置。
语法
NTSTATUS WdfDeviceInitAssignSDDLString(
[in] PWDFDEVICE_INIT DeviceInit,
[in, optional] PCUNICODE_STRING SDDLString
);
参数
[in] DeviceInit
指向 WDFDEVICE_INIT 结构的指针。
[in, optional] SDDLString
指向描述 Unicode 字符串 的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) |
Library | 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) |