KSGATE 構造体 (ks.h)

KSGATE 構造体は、AVStream ゲート オブジェクトを記述します。

構文

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

メンバー

Count

このメンバーは、ゲートのカウントを示します。 このメンバーが 0 より大きい場合、ゲートは "オープン" 状態であると見なされ、処理が可能になります。 メンバーが 0 以下の場合、ゲートは "閉じている" 状態であると見なされ、処理は許可されません。 KSGATE 構造体は AVStream のユニバーサル ゲート実装ですが、概念的には AND ゲートと OR ゲートの両方があります。 AND ゲートの場合、Count は 1 からゲートへのオフ入力の数を引いた値です。 OR ゲートの場合、Count はゲートの入力の数です。 したがって、一般に、このメンバーには任意の値を含めることができます。ただし、AND ゲートの場合は、1 つ以下の値のみを含めることができます。OR ゲートの場合は、0 以上の値のみを含めることができます。 クライアントは、この構造体が表す特定の概念ゲートに対して Count メンバーを無効な値に明示的に設定しないように注意する必要があります。

NextGate

ゲート チェーン内の次の KSGATE 構造体へのポインター。 KsGateXxxAnd 関数と KsGateXxxOr 関数を使用したこの伝達には制限があります。 AND ゲートの NextGate は OR ゲートを指し、OR ゲートの場合は AND ゲートを指す必要があります。 クライアントは、KsGateInitializeAnd または KsGateInitializeOr の代わりに KsGateInitialize を使用して状態遷移を手動で指定できます。

注釈

概念的には、フロー制御ゲートは論理 AND ゲートと OR ゲートです。AVStream では、処理制御メカニズムとして使用されます。 詳細については、「 AVStream のフロー制御ゲート」を参照してください。

Count のすべての操作は、同期状態の変更を提供するために、インターロックされた関数を使用して行われます。 指定された KSGATE が AND ゲートと OR ゲートのどちらを表すかは区別されません。 したがって、クライアントは、OR ゲートの KSGATE XxxAnd 関数または AND ゲートの KSGATE Xxx Or 関数、または KsGateTurnInputXxx 関数を無効に使用して、ゲートを無効な状態に移行しないように注意する必要があります。

要件

要件
サポートされている最小のクライアント Microsoft Windows XP 以降のオペレーティング システムおよび Microsoft DirectX 8.0 以降のバージョンで使用できます。
Header ks.h (Ks.h を含む)

こちらもご覧ください

KSGATE

KsGateInitialize

KsGateInitializeAnd

KsGateInitializeOr