次の方法で共有


PCNODE_DESCRIPTOR構造体 (portcls.h)

PCNODE_DESCRIPTOR構造体は、トポロジ ミニポート ドライバーが実装するフィルター内のノードを記述します。

構文

typedef struct {
  ULONG                    Flags;
  const PCAUTOMATION_TABLE *AutomationTable;
  const GUID               *Type;
  const GUID               *Name;
} PCNODE_DESCRIPTOR, *PPCNODE_DESCRIPTOR;

メンバー

Flags

0 に設定します。 フラグ ビットは現在定義されていません。

AutomationTable

オートメーション テーブルへのポインター。これは 、PCAUTOMATION_TABLE型の構造体です。 このメンバーは NULL に設定して、オートメーションのサポートがないことを示すことができます。 オートメーション テーブルは、ノード インスタンスに属するプロパティとイベントのハンドラーを指定します。

Type

ノードの種類を指定します。 このメンバーは、ノードの種類を一意に識別する GUID へのポインターです。 「オーディオ トポロジ ノード」のノードタイプ GUID の一覧を参照してください。

Name

このトポロジ ノードの名前を表す GUID へのポインター。 この GUID は、 KSPROPERTY_TOPOLOGY_NAMEget-property 要求で指定され、ノードの対応する名前文字列を取得します。 このポインターを NULL に設定すると、 Type メンバーの GUID を使用してノード名を決定する必要があることを示すことができます。

注釈

フィルターに Type メンバーで指定された型のノードが 1 つだけ含まれている場合、Type 値がフィルター内のノードを一意に識別するのに十分であるため、Name メンバーを NULL として指定できます。 フィルターに同じ種類のノードが 2 つ以上含まれている場合、それらのノードの Name メンバーは NULL 以外である必要があります。

たとえば、フィルターに 1 つの SUM ノードが含まれている場合、そのノードの Type メンバーは GUID 値 KSNODETYPE_SUMを指し、 Name メンバーは NULL に設定されます。 そのノードの名前を照会すると、 KSPROPERTY_TOPOLOGY_NAME プロパティは、ノードの Name 値が NULL であることを確認した後、KSNODETYPE_SUM GUID のレジストリ エントリから名前文字列を取得します。 ただし、同じフィルターに複数のボリューム ノードが含まれている場合があります。この場合、これらのノードの Type 値はすべて同じ GUID 値 KSNODETYPE_VOLUMEを指し、 Name 値は各ボリューム ノードを一意に識別する必要があります。 たとえば、ウェーブ入力ボリューム制御ノードの Name 値は、GUID 値 KSAUDFNAME_WAVE_IN_VOLUME (ksmedia.h で定義) をポイントする必要があります。 この GUID のレジストリ エントリには、KSPROPERTY_TOPOLOGY_NAME プロパティがノードに対して取得する名前文字列が含まれています。

PCFILTER_DESCRIPTOR構造体には、PCNODE_DESCRIPTOR構造体の配列へのポインターが含まれています。

PCNODE_DESCRIPTOR構造の使用方法を示す簡単なコード例については、「フィルター トポロジの公開」を参照してください。

要件

要件
Header portcls.h (Portcls.h を含む)

こちらもご覧ください

KSPROPERTY_TOPOLOGY_NAME

PCAUTOMATION_TABLE

PCFILTER_DESCRIPTOR