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


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

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

Синтаксис

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

Параметры

[in] Pdo

Указатель на объект физического устройства (PDO) для запрашиваемого устройства.

[in] PropertyKey

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

[in] Lcid

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

Flags

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

[in] Size

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

[out] Data

Указатель на данные свойства устройства.

[out] RequiredSize

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

[out] Type

Указатель на значение DEVPROPTYPE . Если IoGetDevicePropertyData завершается успешно, подпрограмма использует Type для предоставления типа данных, возвращаемых в буфере данных .

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

IoGetDevicePropertyData возвращает значение NTSTATUS. Эта подпрограмма может возвращать одно из следующих значений:

Код возврата Описание
STATUS_SUCCESS
Операция успешно выполнена. Буфер данных содержит извлеченные данные. **Тип* содержит тип полученных данных.
STATUS_BUFFER_TOO_SMALL
Буфер данных слишком мал. **RequiredSize* содержит необходимую длину буфера.
STATUS_OBJECT_NAME_NOT_FOUND
Указанное свойство устройства не найдено.

Комментарии

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

Сведения о типах свойств, доступных для использования этой подпрограммой, см . в разделе DEVPROP_TYPE_BYTE и смежных страницах для DEVPROP_TYPE_*.

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

Вызывающие устройства IoGetDevicePropertyData должны выполняться по адресу IRQL <= APC_LEVEL в контексте системного потока.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows Vista.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

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

DEVPROPKEY

DEVPROPTYPE

IoSetDevicePropertyData