Функция WdfPdoInitAssignDeviceID (wdfpdo.h)
[Применяется только к KMDF]
Метод WdfPdoInitAssignDeviceID обновляет идентификатор дочернего устройства.
Синтаксис
NTSTATUS WdfPdoInitAssignDeviceID(
[in] PWDFDEVICE_INIT DeviceInit,
[in] PCUNICODE_STRING DeviceID
);
Параметры
[in] DeviceInit
Указатель на структуру WDFDEVICE_INIT .
[in] DeviceID
Указатель на структуру UNICODE_STRING , содержащую строку идентификатора устройства. Драйвер может выделить буфер строки из выстраивного пула.
Возвращаемое значение
Если операция выполнена успешно, метод возвращает STATUS_SUCCESS. К дополнительным возвращаемым значениям относятся:
Код возврата | Описание |
---|---|
|
Драйвер инициализирует FDO вместо PDO. |
|
Драйверу не удалось выделить место для хранения строки идентификатора устройства. |
Метод также может возвращать другие значения NTSTATUS.
Комментарии
Идентификатор устройства обычно является первым элементом в списке идентификаторов оборудования, которые сообщает устройство. Дополнительные сведения об идентификаторах устройств и аппаратных идентификаторах см. в разделах Строки идентификации устройств и Настройка выбора драйверов.
Драйвер должен вызвать WdfPdoInitAssignDeviceID перед вызовом WdfDeviceCreate. Дополнительные сведения о вызове WdfDeviceCreate см. в разделе Создание объекта устройства платформы.
Примеры
В следующем примере кода сообщается идентификатор устройства, который используется в примере драйвера KbFiltr .
#define KBFILTR_DEVICE_ID L"{A65C87F9-BE02-4ed9-92EC-012D416169FA}\\KeyboardFilter\0"
DECLARE_CONST_UNICODE_STRING(deviceId,KBFILTR_DEVICE_ID);
status = WdfPdoInitAssignDeviceID(
pDeviceInit,
&deviceId
);
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия 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) |