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

另请参阅