Функция 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 см. в разделе Создание объекта устройства платформы.
Примеры
В следующем примере кода сообщается совместимое значение идентификатора, которое используется в примере драйвера Тостера .
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) |