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