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。 其他返回值包括:
返回代码 | 说明 |
---|---|
|
驱动程序正在初始化 FDO 而不是 PDO。 |
|
驱动程序无法分配空间来存储兼容的 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) |