Функция WdfFdoInitQueryPropertyEx (wdffdo.h)

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

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

Синтаксис

NTSTATUS WdfFdoInitQueryPropertyEx(
  [in]  PWDFDEVICE_INIT           DeviceInit,
  [in]  PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
  [in]  ULONG                     BufferLength,
  [out] PVOID                     PropertyBuffer,
  [out] PULONG                    ResultLength,
  [out] PDEVPROPTYPE              Type
);

Параметры

[in] DeviceInit

Указатель на структуру WDFDEVICE_INIT , полученную драйвером из функции обратного вызова EvtDriverDeviceAdd .

[in] DeviceProperty

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

[in] BufferLength

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

[out] PropertyBuffer

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

[out] ResultLength

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

[out] Type

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

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

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

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

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

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

Комментарии

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

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

Драйвер может вызывать WdfFdoInitQueryPropertyEx только перед вызовом WdfDeviceCreate. Дополнительные сведения о вызове WdfDeviceCreate см. в разделе Создание объекта устройства платформы.

После вызова WdfDeviceCreate драйвер может получить сведения о свойствах устройства, вызвав WdfDeviceQueryPropertyEx.

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

Требования

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

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

WdfFdoInitQueryProperty