Функция 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. К дополнительным возвращаемым значениям относятся:
Код возврата | Описание |
---|---|
|
Драйвер инициализирует FDO вместо PDO. |
|
Драйверу не удалось выделить место для хранения строк. |
Метод также может возвращать другие значения NTSTATUS.
Комментарии
Платформа сохраняет указанный текст устройства и передает его диспетчеру PnP в ответ на запрос IRP_MN_QUERY_DEVICE_TEXT . Текст, который вы указываете, должен помочь пользователю идентифицировать устройство. Диспетчер PnP иногда отображает текст при попытке установить дополнительные драйверы для устройства.
Вы можете вызывать WdfPdoInitAddDeviceText несколько раз, добавляя текст устройства для нескольких языковых стандартов. Когда система отображает текст, она выбирает текст, соответствующий текущему языковому стандарту, если он доступен. В противном случае он будет использовать строку для языкового стандарта по умолчанию. Драйвер может указать языковой стандарт драйвера по умолчанию, вызвав WdfPdoInitSetDefaultLocale.
Драйвер должен вызвать WdfPdoInitAddDeviceText перед вызовом WdfDeviceCreate. Дополнительные сведения о вызове WdfDeviceCreate см. в разделе Создание объекта устройства платформы.
Примеры
В следующем примере кода приведены строки Юникода для расположения и описания устройства. Описание содержит номер экземпляра. Полный пример использования 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) |