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


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

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

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

Синтаксис

NTSTATUS WdfPdoInitAddCompatibleID(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING CompatibleID
);

Параметры

[in] DeviceInit

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

[in] CompatibleID

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

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

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

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

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

Замечания

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

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

Примеры

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

DECLARE_CONST_UNICODE_STRING(compatId, L"{B85B7C50-6A01-11d2-B841-00C04FAD5171}\\MsCompatibleToaster\0");

status = WdfPdoInitAddCompatibleID(
                                   DeviceInit,
                                   &compatId
                                   );

Требования

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

См. также

WdfPdoInitAddHardwareID

WdfPdoInitAssignDeviceID

WdfPdoInitAssignInstanceID