WdfDeviceAssignInterfaceProperty 函数 (wdfdevice.h)

重要

仅适用于 UMDF

WdfDeviceAssignInterfaceProperty 方法修改设备接口属性的当前值。

注意

若要检索或修改设备接口属性,KMDF 驱动程序必须直接调用 IoGetDeviceInterfacePropertyDataIoSetDeviceInterfacePropertyData

语法

NTSTATUS WdfDeviceAssignInterfaceProperty(
  [in]           WDFDEVICE                           Device,
  [in]           PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData,
  [in]           DEVPROPTYPE                         Type,
  [in]           ULONG                               BufferLength,
  [in, optional] PVOID                               PropertyBuffer
);

参数

[in] Device

框架设备对象的句柄。

[in] PropertyData

指向 WDF_DEVICE_INTERFACE_PROPERTY_DATA 结构的指针。

[in] Type

一个 DEVPROPTYPE 类型的值,该值指定 PropertyBuffer 中提供的数据类型。

[in] BufferLength

指定 PropertyBuffer 指向的缓冲区的长度(以字节为单位)。

[in, optional] PropertyBuffer

指向设备接口属性数据的指针。 将此参数设置为 NULL 可删除指定的属性。

返回值

如果 WdfDeviceAssignInterfaceProperty 方法未遇到任何错误,则返回STATUS_SUCCESS。 其他返回值包括:

返回代码 说明
STATUS_INVALID_PARAMETER 其中一个参数不正确。

方法可能会返回其他 NTSTATUS 值

注解

有关相关方法的信息,请参阅 访问统一设备属性模型

示例

下面的代码示例初始化 WDF_DEVICE_INTERFACE_PROPERTY_DATA 结构,然后调用 WdfDeviceAssignInterfaceProperty

DEFINE_DEVPROPKEY(DEVPKEY_ToasterCrispLevelDword, 0x5d0ba64a, 0x2396, 0x4bc9, 0xbf, 0x49, 0x52, 0x1d, 0xa6, 0x2b, 0x1b, 0xed, 3);  // DEVPROP_TYPE_UINT32

ULONG crispLevel = 0;
WDF_DEVICE_INTERFACE_PROPERTY_DATA propertyData;

WDF_DEVICE_INTERFACE_PROPERTY_DATA_INIT(
                          &propertyData, 
                          &GUID_DEVINTERFACE_TOASTER_DRIVER
                          &DEVPKEY_ToasterCrispLevelDword
                          );

status = WdfDeviceAssignInterfaceProperty(device, 
                                          &propertData,
                                          DEVPROP_TYPE_UINT32,
                                          sizeof(crispLevel),
                                          &crispLevel);
if (!NT_SUCCESS(status)) {
    return status;
}

要求

要求
最低受支持的客户端 Windows 8.1
目标平台 通用
最低 UMDF 版本 2.0
标头 wdfdevice.h (包括 Wdf.h)
Library WUDFx02000.lib
DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

另请参阅

WDF_DEVICE_INTERFACE_PROPERTY_DATA

WDF_DEVICE_INTERFACE_PROPERTY_DATA_INIT

WdfDeviceAllocAndQueryInterfaceProperty

WdfDeviceQueryInterfaceProperty