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


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

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

Метод WdfPdoInitAssignDeviceID обновляет идентификатор устройства для дочернего устройства.

Синтаксис

NTSTATUS WdfPdoInitAssignDeviceID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING DeviceID
);

Параметры

[in] DeviceInit

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

[in] DeviceID

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

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

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

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

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

Замечания

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

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

Примеры

В следующем примере кода сообщается идентификатор устройства, который использует KbFiltr пример драйвера.

#define  KBFILTR_DEVICE_ID L"{A65C87F9-BE02-4ed9-92EC-012D416169FA}\\KeyboardFilter\0"
DECLARE_CONST_UNICODE_STRING(deviceId,KBFILTR_DEVICE_ID);

status = WdfPdoInitAssignDeviceID(
                                  pDeviceInit,
                                  &deviceId
                                  );

Требования

Требование Ценность
целевая платформа универсальный
минимальная версия 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)

См. также

WdfPdoInitAddCompatibleID

WdfPdoInitAddHardwareID

WdfPdoInitAssignInstanceID