WdfPdoInitAddCompatibleID 函数 (wdfpdo.h)

[仅适用于 KMDF]

WdfPdoInitAddCompatibleID 方法将兼容 ID 添加到子设备的兼容 ID 列表中。

语法

NTSTATUS WdfPdoInitAddCompatibleID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING CompatibleID
);

参数

[in] DeviceInit

指向 WDFDEVICE_INIT 结构的指针。

[in] CompatibleID

指向包含兼容 ID 字符串 的UNICODE_STRING 结构的指针。 驱动程序可以从分页池分配字符串的缓冲区。

返回值

如果操作成功,该方法将返回STATUS_SUCCESS。 其他返回值包括:

返回代码 说明
STATUS_INVALID_DEVICE_REQUEST
驱动程序正在初始化 FDO 而不是 PDO。
STATUS_INSUFFICIENT_RESOURCES
驱动程序无法分配空间来存储兼容的 ID 字符串。
 

该方法还可以返回其他 NTSTATUS 值

注解

驱动程序可以为设备添加一个或多个兼容的 ID。 应按顺序添加它们,从最佳匹配到最差匹配。 框架将按照添加 ID 的顺序将 ID 传递到 PnP 管理器。 有关兼容 ID 的详细信息,请参阅 设备标识字符串 以及 安装程序如何选择驱动程序

驱动程序必须在调用 WdfDeviceCreate 之前调用 WdfPdoInitAddCompatibleID。 有关调用 WdfDeviceCreate 的详细信息,请参阅 创建框架设备对象

示例

下面的代码示例报告了一个兼容的 ID 值,该 ID 值 是烤箱 示例驱动程序使用的。

DECLARE_CONST_UNICODE_STRING(compatId, L"{B85B7C50-6A01-11d2-B841-00C04FAD5171}\\MsCompatibleToaster\0");

status = WdfPdoInitAddCompatibleID(
                                   DeviceInit,
                                   &compatId
                                   );

要求

   
目标平台 通用
最低 KMDF 版本 1.0
Header wdfpdo.h (包括 Wdf.h)
Library Wdf01000.sys (请参阅框架库版本控制.)
IRQL PASSIVE_LEVEL
DDI 符合性规则 ChildDeviceInitAPI (kmdf) DriverCreate (kmdf) InitFreeDeviceCallback (kmdf) InitFreeDeviceCreate (kmdf) InitFreeNull (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、KmdfIrqlExplicit (kmdf) 、 PdoDeviceInitAPI (kmdf) PdoInitFreeDeviceCallback (kmdf) PdoInitFreeDeviceCreate (kmdf)

另请参阅

WdfPdoInitAddHardwareID

WdfPdoInitAssignDeviceID

WdfPdoInitAssignInstanceID