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


Функция IoGetDeviceInterfacePropertyData (wdm.h)

Подпрограмма IoGetDeviceInterfacePropertyData извлекает текущее значение свойства интерфейса устройства.

Синтаксис

NTSTATUS IoGetDeviceInterfacePropertyData(
  [in]  PUNICODE_STRING  SymbolicLinkName,
  [in]  const DEVPROPKEY *PropertyKey,
  [in]  LCID             Lcid,
        ULONG            Flags,
  [in]  ULONG            Size,
  [out] PVOID            Data,
  [out] PULONG           RequiredSize,
  [out] PDEVPROPTYPE     Type
);

Параметры

[in] SymbolicLinkName

Указатель на строку, которая идентифицирует экземпляр интерфейса устройства. Эта строка была получена из предыдущего вызова процедуры IoGetDeviceInterfaces, IoGetDeviceInterfaceAlias или IoRegisterDeviceInterface .

[in] PropertyKey

Указатель на структуру DEVPROPKEY , содержащую ключ свойства интерфейса устройства.

[in] Lcid

Указывает идентификатор языкового стандарта. Присвойте этому параметру значение LCID для конкретного языка или LOCALE_NEUTRAL. Код языка LOCALE_NEUTRAL указывает, что свойство не зависит от языка (т. е. не относится к какому-либо языку). Не устанавливайте для этого параметра значение LOCALE_SYSTEM_DEFAULT или LOCALE_USER_DEFAULT. Дополнительные сведения о значениях LCID для конкретного языка см. в разделе Структура LCID.

Flags

Зарезервировано для системного использования. Драйверы должны задать для этого значения нулевое значение.

[in] Size

Указывает размер (в байтах) буфера, на который указывает data .

[out] Data

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

[out] RequiredSize

Указатель на переменную ULONG, в которую IoGetDeviceInterfacePropertyData записывает необходимый размер данных свойства. Если подпрограмма завершается успешно, необходимое значение размера — это количество байтов, которое подпрограмма записывает в выходной буфер, на который указывает Data . Если подпрограмма возвращает STATUS_BUFFER_TOO_SMALL, требуемым значением размера является размер буфера, который вызывающий объект должен выделить для этого значения свойства.

[out] Type

Указатель на переменную DEVPROPTYPE . Если IoGetDeviceInterfacePropertyData успешно извлекает данные свойства, подпрограмма записывает значение типа свойства в эту переменную. Это значение указывает тип данных свойства, которые есть в буфере данных .

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

IoGetDeviceInterfacePropertyData возвращает STATUS_SUCCESS в случае успешного выполнения. Возможные возвращаемые значения ошибок включают следующие коды состояния.

Код возврата Описание
STATUS_BUFFER_TOO_SMALL Буфер, на который указывает data , слишком мал, чтобы содержать данные свойства. *RequiredSize содержит необходимую длину буфера.
STATUS_UNSUCCESSFUL Указанное значение LCID недопустимо.
STATUS_NOT_IMPLEMENTED Указанное свойство не поддерживается.

Комментарии

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

Драйверы могут использовать подпрограмму IoSetDeviceInterfacePropertyData для изменения свойства интерфейса устройства.

Вызывающие объект IoGetDeviceInterfacePropertyData должны выполняться в среде IRQL = PASSIVE_LEVEL в контексте системного потока.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 8 и более поздних версиях Windows.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

См. также раздел

DEVPROPKEY

DEVPROPTYPE

IoSetDeviceInterfacePropertyData