KSGATE 结构 (ks.h)

KSGATE 结构描述 AVStream 门对象。

语法

typedef struct _KSGATE {
  LONG    Count;
  PKSGATE NextGate;
} KSGATE, *PKSGATE;

成员

Count

此成员指示门上的计数。 当此成员高于零时,门被视为处于“打开”状态并允许处理。 当成员为零或更低时,门被视为处于“关闭”状态,不允许处理。 尽管 KSGATE 结构是 AVStream 中的通用门实现,但从概念上讲,同时存在 AND 和 OR 门。 对于 AND 门,Count 为 1 减去门的关闭输入数。 对于 OR 门,Count 是门的输入数。 因此,通常,此成员可以包含任何值;但是,对于 AND 门,它只能包含一个或更少的值,对于 OR 门,它只能包含零或更大的值。 客户端应注意不要将 Count 成员专门设置为此结构表示的给定概念门的无效值。

NextGate

指向门链中下一个 KSGATE 结构的指针。 使用 KsGateXxxAnd 和 KsGateXxxOr 函数的此传播存在限制。 AND 门的 NextGate 必须指向 OR 门,OR 门必须指向 AND 门。 客户端可以通过 KsGateInitialize 而不是 KsGateInitializeAnd 或 KsGateInitializeOr 手动指定状态转换。

注解

从概念上讲,流控制门是逻辑 AND 和 OR 门;在 AVStream 中,它们用作处理控制机制。 有关详细信息,请参阅 AVStream 中的流控制门

Count 的所有操作都是使用互锁函数完成的,以提供同步状态更改。 对于给定的 KSGATE 是表示 AND 门还是 OR 门,没有任何区别。 因此,客户端应注意不要通过在 OR 门上使用 KSGATEXxx 函数或 AND 门上的 KSGATEXxx 函数,或者无效地使用 KsGateTurnInputXxx 函数将门转换为无效状态。

要求

要求
最低受支持的客户端 在 Microsoft Windows XP 及更高版本的操作系统以及 Microsoft DirectX 8.0 及更高版本中可用。
标头 ks.h (包括 Ks.h)

另请参阅

KSGATE

KsGateInitialize

KsGateInitializeAnd

KsGateInitializeOr