WdfPdoInitAssignInstanceID 函数 (wdfpdo.h)

[仅适用于 KMDF]

WdfPdoInitAssignInstanceID 方法更新子设备的实例 ID

语法

NTSTATUS WdfPdoInitAssignInstanceID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING InstanceID
);

参数

[in] DeviceInit

指向 WDFDEVICE_INIT 结构的指针。

[in] InstanceID

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

返回值

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

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

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

注解

有关实例 ID 的详细信息,请参阅 设备标识字符串

驱动程序必须先调用 WdfPdoInitAssignInstanceID ,然后才能调用 WdfDeviceCreate。 有关调用 WdfDeviceCreate 的详细信息,请参阅 创建框架设备对象

示例

下面的代码示例将设备的序列号转换为 Unicode 字符串,然后将 Unicode 字符串注册为设备的实例 ID。

DECLARE_UNICODE_STRING_SIZE(instanceID, INSTANCEID_LENGTH);

status =  RtlIntegerToUnicodeString(
                                    SerialNo,
                                    BASE_DEC,
                                    &instanceID
                                    );
status = WdfPdoInitAssignInstanceID(
                                    pDeviceInit,
                                    &instanceID
                                    );

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
标头 wdfpdo.h (包括 Wdf.h)
Library Wdf01000.sys (请参阅框架库 Versioning.)
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)

另请参阅

RtlIntegerToUnicodeString

WdfPdoInitAddCompatibleID

WdfPdoInitAddHardwareID

WdfPdoInitAssignDeviceID