Функция 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 |