ACX_PROPERTY_ITEM 结构 (acxrequest.h)
ACX_PROPERTY_ITEM 结构描述作为 ACX 请求目标的属性项。 属性表示属于 ACX 对象的功能或控制状态设置,例如线路、元素、引脚、流等。有关详细信息,请参阅 KS 属性。
语法
typedef struct _ACX_PROPERTY_ITEM {
const GUID *Set;
ULONG Id;
ULONG Flags;
PFN_ACX_OBJECT_PROCESS_REQUEST EvtAcxObjectProcessRequest;
PVOID Reserved;
ULONG ControlCb;
ULONG ValueCb;
ULONG ValueType;
} ACX_PROPERTY_ITEM, *PACX_PROPERTY_ITEM;
成员
Set
指定标识 KS (内核流式处理) 属性项集的 GUID。 例如,KSPROPSETID_Topology集 ID 是拓扑线路属性集。有关详细信息,请参阅 KSPROPERTY 结构。
Id
指定属性集的成员。 例如,拓扑属性集KSPROPERTY_TOPOLOGY_NODES用于检索 KS NODES (ACXELEMENTS) 的列表。
Flags
Flags 字段用于设置 AcxRequest 标头中定义的以下标志。
#define ACX_PROPERTY_ITEM_FLAG_NONE 0x00000000
#define ACX_PROPERTY_ITEM_FLAG_GET 0x00000001 // KSPROPERTY_TYPE_GET
#define ACX_PROPERTY_ITEM_FLAG_SET 0x00000002 // KSPROPERTY_TYPE_SET
#define ACX_PROPERTY_ITEM_FLAG_BASICSUPPORT 0x00000200 // KSPROPERTY_TYPE_BASICSUPPORT
ACX_PROPERTY_ITEM_FLAG_GET - 检索指定属性项的值。
ACX_PROPERTY_ITEM_FLAG_SET - 设置指定属性项的值。
ACX_PROPERTY_ITEM_FLAG_BASICSUPPORT - 查询驱动程序为此属性项处理的请求类型。 返回KSPROPERTY_TYPE_GET或KSPROPERTY_TYPE_SET或两者。 所有属性集都必须支持此标志。 某些对象可能会返回更多信息,例如音量范围等。
EvtAcxObjectProcessRequest
与此项关联的 EVT_ACX_OBJECT_PROCESS_REQUEST回调 属性处理程序。
Reserved
该字段被保留。
ControlCb
其他控制缓冲区 (大小) 的最小计数(以字节为单位)。 如果没有最小值,则设置为零。
ValueCb
值缓冲区的大小) (最小计数(以字节为单位)。 如果没有最小值,则设置为零。
ValueType
属性的 VARENUM 类型。 设置为 0,即VT_EMPTY使用默认行为。
备注
示例
示例用法如下所示。
#define ACX_PROPERTY_ITEM_FLAG_NONE 0x00000000
#define ACX_PROPERTY_ITEM_FLAG_GET 0x00000001 // KSPROPERTY_TYPE_GET
#define ACX_PROPERTY_ITEM_FLAG_SET 0x00000002 // KSPROPERTY_TYPE_SET
#define ACX_PROPERTY_ITEM_FLAG_BASICSUPPORT 0x00000200 // KSPROPERTY_TYPE_BASICSUPPORT
// Pin properties.
static ACX_PROPERTY_ITEM PinProperties[] =
{
{
&KSPROPSETID_Pin,
KSPROPERTY_PIN_DATAFLOW,
ACX_PROPERTY_ITEM_FLAG_GET,
&AfxPin::EvtPinDataflowCallback,
NULL, // Reserved
0, // ControlCb
sizeof(KSPIN_DATAFLOW), // ValueCb
},
};
ACX 要求
最低 ACX 版本: 1.0
有关 ACX 版本的详细信息,请参阅 ACX 版本概述。
要求
要求 | 值 |
---|---|
Header | acxrequest.h |