структура 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 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.
Требования
Требование | Ценность |
---|---|
заголовка | acxrequest.h |