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