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


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

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

Метод WdfPdoInitAddDeviceText добавляет описание устройства и расположение устройства на устройство для указанного языкового стандарта.

Синтаксис

NTSTATUS WdfPdoInitAddDeviceText(
  [in] PWDFDEVICE_INIT  DeviceInit,
  [in] PCUNICODE_STRING DeviceDescription,
  [in] PCUNICODE_STRING DeviceLocation,
  [in] LCID             LocaleId
);

Параметры

[in] DeviceInit

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

[in] DeviceDescription

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

[in] DeviceLocation

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

[in] LocaleId

Идентификатор языкового стандарта (LCID), представляющий языковой стандарт строк Юникода. Дополнительные сведения см. в разделе Идентификаторы языкового стандарта.

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

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

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

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

Замечания

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

Вы можете вызывать WdfPdoInitAddDeviceText несколько раз, добавив текст устройства для нескольких языковых стандартов. При отображении текста система выбирает текст, соответствующий текущему языковому стандарту, если он доступен. В противном случае он будет использовать строку для языкового стандарта по умолчанию. Драйвер может указать языковой стандарт по умолчанию драйвера, вызвав WdfPdoInitSetDefaultLocale.

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

Примеры

В следующем примере кода приведены строки Юникода для расположения и описания устройства. Описание содержит номер экземпляра. Полный пример использования WdfPdoInitAddDeviceTextсм. в примере драйвера KbFiltr.

DECLARE_CONST_UNICODE_STRING(deviceLocation,L"Keyboard Filter\0" );
DECLARE_UNICODE_STRING_SIZE(buffer, MAX_ID_LEN);

status = RtlUnicodeStringPrintf(
                                &buffer,
                                L"Keyboard_Filter_%02d",
                                InstanceNo
                                );
if (!NT_SUCCESS(status)) {
    goto Cleanup;
}
status = WdfPdoInitAddDeviceText(
                                 pDeviceInit,
                                 &buffer,
                                 &deviceLocation,
                                 0x409
                                 );
if (!NT_SUCCESS(status)) {
    goto Cleanup;
}

Требования

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

См. также

WdfPdoInitSetDefaultLocale