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
InstanceSize
指定属性实例缓冲区的大小(以字节为单位)。
Instance
指向属性实例缓冲区的指针
ValueSize
指定属性值缓冲区的大小(以字节为单位)。
Value
指向属性值缓冲区的指针
Irp
指向包含客户端原始属性请求的 IRP 的指针
注解
这是端口驱动程序传递给微型端口驱动程序的属性处理程序例程的结构。 PCPROPERTY_ITEM 结构包含指向属性处理程序的函数指针,该函数将PCPROPERTY_REQUEST指针作为其唯一的调用参数。 端口驱动程序分配 PCPROPERTY_REQUEST 结构,从 Irp 成员指向) 的原始属性请求 (提取相关信息,并在调用处理程序之前将信息加载到此结构中。
在 WDM 音频中,属性请求的目标可以是筛选器实例或引脚实例。 目标还可以包含节点 ID。
在客户端的原始属性请求中,属性实例数据始终以 KSPROPERTY 或 KSNODEPROPERTY 结构开头,但可以包含其他信息。 端口驱动程序调整 PCPROPERTY_REQUEST 结构的 实例 成员以指向此附加信息(如果存在)。 有关详细信息,请参阅 音频属性处理程序。
MajorTarget 和 MinorTarget 成员分别是指向 main 微型端口对象和关联的流对象的 IUnknown 指针。 属性处理程序可以查询这些对象的微型端口和流接口。 如果属性请求的目标为筛选器实例, 则 MajorTarget 指向该筛选器实例的微型端口对象, 而 MinorTarget 为 NULL。 如果目标是固定实例, MinorTarget 指向该固定的流对象, 而 MajorTarget 指向该固定连接到的筛选器的微型端口对象。
例如,如果属性请求的目标是 WaveCyclic 筛选器上的引脚实例:
- 处理程序可以在 MajorTarget 对象的 IUnknown 接口上调用 QueryInterface,以获取对对象的 IMiniportWaveCyclic 接口的引用。
- 处理程序可以在 MinorTarget 对象的 IUnknown 接口上调用 QueryInterface,以获取对对象的 IMiniportWaveCyclicStream 接口的引用。
要求
要求 | 值 |
---|---|
Header | portcls.h (包括 Portcls.h) |