Automation 테이블 정의
필터, 핀 또는 노드에 대한 자동화 테이블은 필터, 핀 또는 노드에서 지원하는 속성 및 메서드를 설명합니다. BDA 미니드라이버가 AVStream에서 이미 구현된 속성 또는 메서드 처리기를 제공하는 경우 BDA 미니드라이버의 구현은 AVStream을 대체합니다.
BDA 미니드라이버에서는 속성 및 메서드 집합의 배열을 정의한 다음 미니드라이버가 요청을 자동으로 처리할 수 있도록 해당 집합 배열에 대한 자동화 테이블을 정의해야 합니다. 미니드라이버가 이 섹션이 참조하는 속성 집합을 정의하는 방법에 대한 예제는 BDA 디바이스 토폴 로지 결정 섹션을 참조하세요.
다음 코드 조각은 필터 자동화 테이블의 예와 속성 및 메서드 집합의 배열을 보여 줍니다.
//
// Filter Level Property Set supported
//
// This array defines a property set supported by the
// filter that is exposed by the minidriver.
//
DEFINE_KSPROPERTY_SET_TABLE(FilterPropertySets)
{
DEFINE_KSPROPERTY_SET
(
&KSPROPSETID_BdaTopology, // Set
SIZEOF_ARRAY(FilterTopologyProperties), // PropertiesCount
FilterTopologyProperties, // PropertyItems
0, // FastIoCount
NULL // FastIoTable
)
};
//
// Filter Level Method Sets supported
//
// This array defines method sets supported by the
// filter that is exposed by the minidriver.
//
DEFINE_KSMETHOD_SET_TABLE(FilterMethodSets)
{
DEFINE_KSMETHOD_SET
(
&KSMETHODSETID_BdaChangeSync, // Set
SIZEOF_ARRAY(BdaChangeSyncMethods), // MethodsCount
BdaChangeSyncMethods, // MethodItems
0, // FastIoCount
NULL // FastIoTable
),
DEFINE_KSMETHOD_SET
(
&KSMETHODSETID_BdaDeviceConfiguration, // Set
SIZEOF_ARRAY(BdaDeviceConfigurationMethods),// MethodsCount
BdaDeviceConfigurationMethods, // MethodItems
0, // FastIoCount
NULL // FastIoTable
)
};
//
// Filter Automation Table
//
// Lists all arrays of property and method sets for the filter that
// is exposed by the minidriver.
//
DEFINE_KSAUTOMATION_TABLE(FilterAutomation) {
DEFINE_KSAUTOMATION_PROPERTIES(FilterPropertySets),
DEFINE_KSAUTOMATION_METHODS(FilterMethodSets),
DEFINE_KSAUTOMATION_EVENTS_NULL
};
다음 코드 조각은 노드 자동화 테이블 및 속성 집합 배열의 예를 보여줍니다.
//
// RF tuner node property set supported
//
// This array defines a property set supported by the
// RF Tuner Node associated with the antenna input pin.
//
DEFINE_KSPROPERTY_SET_TABLE(RFNodePropertySets)
{
DEFINE_KSPROPERTY_SET
(
&KSPROPSETID_BdaFrequencyFilter, // Set
SIZEOF_ARRAY(RFNodeFrequencyProperties), // PropertiesCount
RFNodeFrequencyProperties, // PropertyItems
0, // FastIoCount
NULL // FastIoTable
)
};
//
// Radio frequency tuner node automation table
//
//
DEFINE_KSAUTOMATION_TABLE(RFTunerNodeAutomation) {
DEFINE_KSAUTOMATION_PROPERTIES( RFNodePropertySets),
DEFINE_KSAUTOMATION_METHODS_NULL,
DEFINE_KSAUTOMATION_EVENTS_NULL
};