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


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

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

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

Синтаксис

NTSTATUS WdfPdoInitAddHardwareID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING HardwareID
);

Параметры

[in] DeviceInit

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

[in] HardwareID

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

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

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

Код возврата Описание
STATUS_INVALID_DEVICE_REQUEST
Драйвер инициализирует FDO вместо PDO.
STATUS_INSUFFICIENT_RESOURCES
Драйверу не удалось выделить место для хранения строки идентификатора оборудования.
 

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

Комментарии

Драйвер может добавить один или несколько идентификаторов оборудования для устройства. Они должны быть добавлены в порядке от лучшего соответствия к худшему матчу. Платформа доставляет идентификаторы диспетчеру PnP в том порядке, в который они были добавлены. Дополнительные сведения об идентификаторах оборудования см. в разделах Строки идентификации устройств и Настройка выбора драйверов.

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

Примеры

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

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

status = WdfPdoInitAddHardwareID(
                                 pDeviceInit,
                                 &hardwareId
                                 );

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия 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

WdfPdoInitAssignDeviceID

WdfPdoInitAssignInstanceID