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 を含む) |