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


структура PCPROPERTY_REQUEST (portcls.h)

Структура PCPROPERTY_REQUEST указывает запрос на свойство.

Синтаксис

typedef struct _PCPROPERTY_REQUEST {
  PUNKNOWN              MajorTarget;
  PUNKNOWN              MinorTarget;
  ULONG                 Node;
  const PCPROPERTY_ITEM *PropertyItem;
  ULONG                 Verb;
  ULONG                 InstanceSize;
  PVOID                 Instance;
  ULONG                 ValueSize;
  PVOID                 Value;
  PIRP                  Irp;
} PCPROPERTY_REQUEST, *PPCPROPERTY_REQUEST;

Члены

MajorTarget

Указатель IUnknown на main мини-объект. Этот член содержит значение параметра UnknownMiniport , которое драйвер адаптера ранее передал в метод IPort::Init .

MinorTarget

Указатель IUnknown на объект потока, связанный с объектом мини-порта MajorTarget . Если целевой объект для запроса свойства является экземпляром закрепления, этот элемент содержит указатель объекта потока, который ранее выводил метод IMiniport Xxx::NewStream в драйвер порта (например, параметр Stream метода IMiniportWaveCyclic::NewStream). В противном случае (если целевым объектом для запроса свойства является экземпляр фильтра), этот элемент имеет значение NULL.

Node

Указывает идентификатор узла. Этот член идентифицирует целевой узел для запроса. Если целевой объект не является узлом, для этого элемента устанавливается значение ULONG(-1).

PropertyItem

Указатель на элемент свойства, который представляет собой структуру типа PCPROPERTY_ITEM.

Verb

Указывает тип запроса свойства. Команде присваивается побитовое ЗНАЧЕНИЕ ИЛИ одного или нескольких следующих битов флага из файла заголовка ks.h:

  • KSPROPERTY_TYPE_GET
  • KSPROPERTY_TYPE_SET
  • KSPROPERTY_TYPE_SETSUPPORT
  • KSPROPERTY_TYPE_BASICSUPPORT
  • KSPROPERTY_TYPE_RELATIONS
  • KSPROPERTY_TYPE_SERIALIZESET
  • KSPROPERTY_TYPE_UNSERIALIZESET
  • KSPROPERTY_TYPE_SERIALIZERAW
  • KSPROPERTY_TYPE_UNSERIALIZERAW
  • KSPROPERTY_TYPE_SERIALIZESIZE
  • KSPROPERTY_TYPE_DEFAULTVALUES
  • KSPROPERTY_TYPE_TOPOLOGY
Эти флаги описаны в разделе KSPROPERTY.

InstanceSize

Задает размер буфера экземпляра свойства в байтах.

Instance

Указатель на буфер экземпляра свойства

ValueSize

Задает размер буфера свойств и значений в байтах.

Value

Указатель на буфер свойств и значений

Irp

Указатель на IRP , содержащий исходный запрос на свойство клиента

Комментарии

Это структура, которую драйвер порта передает в подпрограмму обработчика свойств драйвера мини-порта. Структура PCPROPERTY_ITEM содержит указатель функции на обработчик свойств, который принимает указатель PCPROPERTY_REQUEST в качестве единственного параметра вызова. Драйвер порта выделяет структуру PCPROPERTY_REQUEST , извлекает соответствующую информацию из исходного запроса свойства (на который указывает член IRP ) и загружает сведения в эту структуру перед вызовом обработчика.

В аудиоданных WDM целевым объектом запроса свойства может быть либо экземпляр фильтра, либо экземпляр закрепления. Целевой объект также может содержать идентификатор узла.

В исходном запросе на свойство клиента данные экземпляра свойства всегда начинаются со структуры KSPROPERTY или KSNODEPROPERTY , но могут включать дополнительные сведения. Драйвер порта настраивает элемент экземпляраструктуры PCPROPERTY_REQUEST таким образом, чтобы он указывал на эти дополнительные сведения, если они существуют. Дополнительные сведения см. в разделе Обработчики свойств аудио.

Элементы MajorTarget и MinorTarget являются указателями IUnknown на main объект miniport и связанный объект потока соответственно. Обработчик свойств может запрашивать эти объекты для их мини-портов и потоковых интерфейсов. Если целевым объектом для запроса свойства является экземпляр фильтра, MajorTarget указывает на объект miniport для этого экземпляра фильтра, а MinorTarget имеет значение NULL. Если целевой объект является экземпляром контакта, MinorTarget указывает на объект потока для этого контакта, а MajorTarget указывает на объект miniport для фильтра, к которому прикреплен контакт.

Например, если целевым объектом для запроса свойства является экземпляр закрепления фильтра WaveCyclic:

  • Обработчик может вызвать QueryInterface в интерфейсе IUnknown объекта MajorTarget, чтобы получить ссылку на интерфейс IMiniportWaveCyclic объекта.
  • Обработчик может вызвать QueryInterface в интерфейсе IUnknown объекта MinorTarget, чтобы получить ссылку на интерфейс IMiniportWaveCyclicStream объекта.
Дополнительные сведения о свойствах звука см. в разделе Конечные точки звука, свойства и события. Список доступных свойств звука см. в разделе Наборы свойств аудиодрайверов.

Требования

Требование Значение
Заголовок portcls.h (включая Portcls.h)

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

KSNODEPROPERTY

KSNODEPROPERTY_AUDIO_CHANNEL

KSPROPERTY

PCPROPERTY_ITEM