структура 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
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) |