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

[Относится только к UMDF]

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

Синтаксис

NTSTATUS WdfDeviceQueryInterfaceProperty(
  [in]  WDFDEVICE                           Device,
  [in]  PWDF_DEVICE_INTERFACE_PROPERTY_DATA PropertyData,
  [in]  ULONG                               BufferLength,
  [out] PVOID                               PropertyBuffer,
  [out] PULONG                              ResultLength,
  [out] PDEVPROPTYPE                        Type
);

Параметры

[in] Device

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

[in] PropertyData

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

[in] BufferLength

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

[out] PropertyBuffer

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

[out] ResultLength

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

[out] Type

Указатель на переменную типа DEVPROPTYPE, которая определяет тип данных свойств, которые WdfDeviceQueryInterfaceProperty хранятся в буфере, на который указывает PropertyBuffer .

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

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

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

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

Комментарии

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

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

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

Требования

Требование Значение
Минимальная версия клиента Windows 8.1
Целевая платформа Универсальное
Минимальная версия UMDF 2,0
Верхняя часть wdfdevice.h (включая Wdf.h)
Библиотека WUDFx02000.lib
DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

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

WDF_DEVICE_INTERFACE_PROPERTY_DATA

WDF_DEVICE_INTERFACE_PROPERTY_DATA_INIT

WdfDeviceAllocAndQueryInterfaceProperty

WdfDeviceAssignInterfaceProperty