Функция 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. К дополнительным возвращаемым значениям относятся:
Код возврата | Описание |
---|---|
|
Драйвер инициализирует 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) |