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


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

Указатель на -typed переменной 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 (include Wdf.h)
библиотеки WUDFx02000.lib
DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

См. также

WDF_DEVICE_INTERFACE_PROPERTY_DATA

WDF_DEVICE_INTERFACE_PROPERTY_DATA_INIT

WdfDeviceAllocAndQueryInterfaceProperty

WdfDeviceAssignInterfaceProperty