Функция 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.
STATUS_INSUFFICIENT_RESOURCES
Драйверу не удалось выделить место для хранения строки идентификатора экземпляра.
 

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

Комментарии

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

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

Примеры

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

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