Функция 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. К дополнительным возвращаемым значениям относятся:
Код возврата | Описание |
---|---|
|
Входной буфер слишком мал для получения информации. |
|
Указанное значение параметра недопустимо. |
Метод может возвращать другие значения 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