次の方法で共有


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 つだけ含まれている場合、Name メンバーは、Type 値でフィルター内のノードを一意に識別するのに十分であるため、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 値は、GUID 値 KSAUDFNAME_WAVE_IN_VOLUME (ksmedia.h で定義) を指している必要があります。 この GUID のレジストリ エントリには、KSPROPERTY_TOPOLOGY_NAME プロパティがノードに対して取得する名前文字列が含まれています。

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

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

必要条件

要件 価値
ヘッダー portcls.h (Portcls.h を含む)

関連項目

KSPROPERTY_TOPOLOGY_NAME

PCAUTOMATION_TABLE

PCFILTER_DESCRIPTOR