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


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

[Применимо к KMDF и UMDF]

Метод WdfFdoInitAllocAndQueryPropertyEx выделяет буфер и извлекает указанное свойство устройства.

Синтаксис

NTSTATUS WdfFdoInitAllocAndQueryPropertyEx(
  [in]           PWDFDEVICE_INIT           DeviceInit,
  [in]           PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
  [in]           POOL_TYPE                 PoolType,
  [in, optional] PWDF_OBJECT_ATTRIBUTES    PropertyMemoryAttributes,
  [out]          WDFMEMORY                 *PropertyMemory,
  [out]          PDEVPROPTYPE              Type
);

Параметры

[in] DeviceInit

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

[in] DeviceProperty

Указатель на структуру WDF_DEVICE_PROPERTY_DATA, которая идентифицирует свойство устройства, которое требуется извлечь.

[in] PoolType

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

[in, optional] PropertyMemoryAttributes

Указатель на выделенную вызывающим WDF_OBJECT_ATTRIBUTES структуру, описывающую атрибуты объектов для объекта памяти, который будет выделена функцией. Этот параметр является необязательным и может быть WDF_NO_OBJECT_ATTRIBUTES.

[out] PropertyMemory

Указатель на типизированное расположение WDFMEMORY, которое получает дескриптор объекту памяти платформы.

[out] Type

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

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

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

Код возврата Описание
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР
Указанное значение DeviceProperty недопустимо.
 

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

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

Замечания

Метод WdfFdoInitAllocAndQueryPropertyEx определяет объем памяти, необходимой для хранения запрошенного свойства интерфейса устройства. Он выделяет достаточно памяти для хранения данных и возвращает дескриптор в объект памяти платформы, описывающий выделенную память. Чтобы получить доступ к данным, драйвер может вызвать WdfMemoryGetBuffer.

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

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

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

Требования

Требование Ценность
целевая платформа универсальный
минимальная версия KMDF 1.13
минимальная версия UMDF 2.0
Заголовок wdffdo.h (include Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL

См. также

WdfFdoInitAllocAndQueryProperty