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