Поделиться через


Функция WdfPdoInitAssignInstanceID (wdfpdo.h)

[Применимо только к KMDF]

Метод WdfPdoInitAssignInstanceID обновляет идентификатор экземпляра для дочернего устройства.

Синтаксис

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

Параметры

[in] DeviceInit

Указатель на структуру WDFDEVICE_INIT.

[in] InstanceID

Указатель на структуру UNICODE_STRING, содержащую идентификатор экземпляра строку. Драйвер может выделить буфер строки из пула страниц.

Возвращаемое значение

Если операция выполнена успешно, метод возвращает STATUS_SUCCESS. К дополнительным возвращаемым значениям относятся:

Код возврата Описание
STATUS_INVALID_DEVICE_REQUEST
Драйвер инициализирует FDO вместо PDO.
СТАТУС_НЕДОСТАТОЧНЫЕ_РЕСУРСЫ
Драйвер не мог выделить место для хранения строки идентификатора экземпляра.
 

Метод также может возвращать другие значения NTSTATUS.

Замечания

Дополнительные сведения об идентификаторах экземпляров см. в строках идентификации устройств.

Драйвер должен вызывать WdfPdoInitAssignInstanceID перед вызовом WdfDeviceCreate. Дополнительные сведения о вызове WdfDeviceCreateсм. в создании объекта устройства Framework.

Примеры

Следующий пример кода преобразует серийный номер устройства в строку Юникода, а затем регистрирует строку Юникода в качестве идентификатора экземпляра устройства.

DECLARE_UNICODE_STRING_SIZE(instanceID, INSTANCEID_LENGTH);

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

Требования

Требование Ценность
целевая платформа универсальный
минимальная версия KMDF 1.0
Заголовок wdfpdo.h (включая Wdf.h)
Библиотека 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)

См. также

RtlIntegerToUnicodeString

WdfPdoInitAddCompatibleID

WdfPdoInitAddHardwareID

WdfPdoInitAssignDeviceID