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

Указывает GUID, который идентифицирует набор элементов свойств KS (потоковая передача ядра). Например, идентификатор набора KSPROPSETID_Topology — это набор свойств канала топологии. Дополнительные сведения см. в разделе Структура KSPROPERTY.

Id

Указывает член набора свойств. Например, KSPROPERTY_TOPOLOGY_NODES набора свойств топологии используется для получения списка узлов KS (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, чтобы использовать поведение по умолчанию.

Remarks

Пример

Ниже приведен пример использования.


#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.

Требования

Требование Значение
Заголовок acxrequest.h

См. также раздел