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

指向main微型端口对象的 IUnknown 指针。 此成员包含适配器驱动程序之前传递给 IPort::Init 方法的 UnknownMiniport 参数值。

MinorTarget

指向与 MajorTarget 微型端口对象关联的流对象的 IUnknown 指针。 如果属性请求的目标为固定实例,则此成员包含 IMiniport Xxx::NewStream 方法以前输出到端口驱动程序的流对象指针 (例如 IMiniportWaveCyclic::NewStream 方法的 Stream 参数) 。 否则 (如果属性请求的目标是筛选器实例) ,则此成员为 NULL

Node

指定节点 ID。 此成员标识请求的目标节点。 如果目标不是节点,则此成员将设置为 ULONG (-1) 。

PropertyItem

指向属性项的指针,属性项是 PCPROPERTY_ITEM类型的结构。

Verb

指定属性请求的类型。 谓词 设置为头文件 ks.h 中以下一个或多个标志位的按位 OR:

  • 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 音频中,属性请求的目标可以是筛选器实例或引脚实例。 目标还可以包含节点 ID。

在客户端的原始属性请求中,属性实例数据始终以 KSPROPERTYKSNODEPROPERTY 结构开头,但可以包含其他信息。 端口驱动程序调整 PCPROPERTY_REQUEST 结构的 实例 成员以指向此附加信息(如果存在)。 有关详细信息,请参阅 音频属性处理程序

MajorTargetMinorTarget 成员分别是指向 main 微型端口对象和关联的流对象的 IUnknown 指针。 属性处理程序可以查询这些对象的微型端口和流接口。 如果属性请求的目标为筛选器实例, 则 MajorTarget 指向该筛选器实例的微型端口对象, 而 MinorTargetNULL。 如果目标是固定实例, MinorTarget 指向该固定的流对象, 而 MajorTarget 指向该固定连接到的筛选器的微型端口对象。

例如,如果属性请求的目标是 WaveCyclic 筛选器上的引脚实例:

有关音频属性的背景信息,请参阅 音频终结点、属性和事件。 有关可用音频特定属性的列表,请参阅 音频驱动程序属性集

要求

要求
Header portcls.h (包括 Portcls.h)

另请参阅

KSNODEPROPERTY

KSNODEPROPERTY_AUDIO_CHANNEL

KSPROPERTY

PCPROPERTY_ITEM