KSGATE 结构 (ks.h)

KSGATE 结构描述 AVStream 门对象。

语法

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

成员

Count

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

NextGate

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

言论

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

计数 的所有作都使用联锁函数提供同步状态更改。 给定的 KSGATE 是表示 AND 门还是 OR 门没有区别。 因此,客户端应小心不要使用 KSGATEXxx 在 OR 门或 KSGATEXxx 函数或 KsGateTurnInputXxx 函数无效将门转换为无效状态。

要求

要求 价值
最低支持的客户端 在 Microsoft Windows XP 及更高版本的作系统和 Microsoft DirectX 8.0 及更高版本中提供。
标头 ks.h (包括 Ks.h)

另请参阅

KSGATE

KsGateInitialize

KsGateInitializeAnd

KsGateInitializeOr