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


Функция WdfDeviceQueryPropertyEx (wdfdevice.h)

[Относится к KMDF и UMDF]

Метод WdfDeviceQueryPropertyEx извлекает указанное свойство устройства.

Синтаксис

NTSTATUS WdfDeviceQueryPropertyEx(
  [in]  WDFDEVICE                 Device,
  [in]  PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
  [in]  ULONG                     BufferLength,
  [out] PVOID                     PropertyBuffer,
  [out] PULONG                    RequiredSize,
  [out] PDEVPROPTYPE              Type
);

Параметры

[in] Device

Дескриптор объекта устройства платформы.

[in] DeviceProperty

Указатель на структуру WDF_DEVICE_PROPERTY_DATA , определяющую извлекаемое свойство устройства.

[in] BufferLength

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

[out] PropertyBuffer

Предоставленный вызывающим объектом указатель на буфер, выделенный вызывающим объектом, который получает запрошенные сведения. Указатель может иметь значение NULL , если параметр BufferLength равен нулю.

[out] RequiredSize

Указанное вызывающим элементом расположение, которое при возврате содержит размер (в байтах) сведений, хранимых методом в PropertyBuffer. Если возвращаемое значение функции равно STATUS_BUFFER_TOO_SMALL, это расположение получает требуемый размер буфера.

[out] Type

Указатель на переменную DEVPROPTYPE . Если метод выполнен успешно, при возврате этот параметр содержит значение типа свойства данных свойства, хранящихся в PropertyBuffer.

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

Если операция выполнена успешно, WdfDeviceQueryPropertyEx возвращает STATUS_SUCCESS. К дополнительным возвращаемым значениям относятся:

Код возврата Описание
STATUS_BUFFER_TOO_SMALL
Предоставленный буфер слишком мал для получения информации.
STATUS_INVALID_PARAMETER
Указанное значение DeviceProperty недопустимо.
 

Метод может возвращать другие значения NTSTATUS.

Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Комментарии

WdfDeviceQueryPropertyEx можно использовать для получения любого свойства, доступного через единую модель свойств, в то время как метод WdfDeviceQueryProperty позволяет запрашивать только подмножество унифицированной модели свойств.

Перед получением данных о свойствах устройства драйверы обычно вызывают метод WdfDeviceQueryPropertyEx только для получения требуемого размера буфера. Для некоторых свойств размер данных может изменяться между возвратом требуемого размера и повторным вызовом драйвером WdfDeviceQueryPropertyEx . Поэтому драйверы должны вызывать WdfDeviceQueryPropertyEx внутри цикла, который выполняется до тех пор, пока состояние возврата не STATUS_BUFFER_TOO_SMALL.

WdfDeviceQueryPropertyEx рекомендуется использовать только в том случае, если требуемый размер буфера известен и неизменяем, так как в этом случае драйвер должен вызывать WdfDeviceQueryPropertyEx только один раз. Если требуемый размер буфера неизвестен или меняется, драйвер должен вызвать WdfDeviceAllocAndQueryPropertyEx.

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

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1.13
Минимальная версия UMDF 2,0
Верхняя часть wdfdevice.h (включая Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL APC_LEVEL

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

WdfDeviceQueryInterfaceProperty

WdfDeviceQueryProperty