VidPN オブジェクトおよびインターフェイスVidPN Objects and Interfaces

ビデオの present (VidPN) マネージャーは、VidPN オブジェクトを使用して、ビデオの現在のソース、ビデオの現在のターゲット、および表示モード間のアソシエーションに関する情報を保持します。The video present network (VidPN) manager uses a VidPN object to maintain information about associations between video present sources, video present targets, and display modes. 詳細については、「ビデオの紹介」を参照してください。For more information, see the Introduction to Video Present Networks topic.

VidPN オブジェクトVidPN object

VidPN オブジェクトには、次のサブオブジェクトが含まれています。A VidPN object contains the following sub-objects.

  • トポロジTopology

  • ソースモードセットSource mode set

  • ターゲットモードセットTarget mode set

  • ソースモードセットの監視Monitor source mode set

  • モニターの頻度の範囲セットMonitor frequency range set

  • モニター記述子セットMonitor descriptor set

  • PathPath

  • Source (ソース)Source

  • 対象Target

  • ソースモードSource mode

  • ターゲットモードTarget mode

  • ソースモードの監視Monitor source mode

次の図は、VidPN オブジェクトとそのサブオブジェクトを示しています。The following diagram illustrates a VidPN object and its sub-objects.

vidpn オブジェクトとそのサブオブジェクトを示す図

上の図は、特定のアソシエーションが一対一、一対多、多対一、多対多のいずれであるかを示しています。The preceding diagram illustrates whether a particular association is one-to-one, one-to-many, many-to-one, or many-to-many. たとえば、1つのソースが複数のパスに属することはできますが、ターゲットは1つのパスにしか属することができません。For example, the diagram shows that a source can belong to more than one path, but a target can belong to only one path.

図の青のオブジェクトにはハンドルとインターフェイスを使用してアクセスし、灰色のオブジェクトには構造体のポインターを介してアクセスします。The blue objects in the diagram are accessed through handles and interfaces, and the gray objects are accessed through structure pointers. このコンテキストのインターフェイスは、関数ポインターを格納する構造体です。An interface in this context is a structure that contains function pointers. たとえば、 DXGK_VIDPNTOPOLOGY_インターフェイス構造体には、topology manager によって実装される関数へのポインターが含まれています。これは、表示ミニポートドライバーが、トポロジオブジェクトを検査および変更するために呼び出します。For example, the DXGK_VIDPNTOPOLOGY_INTERFACE structure contains pointers to functions (implemented by the VidPN manager) that the display miniport driver calls to inspect and alter a topology object. 表示ミニポートドライバーは、これらの関数のいずれかを呼び出すときに、トポロジオブジェクトへのハンドルを提供する必要があります。When the display miniport driver calls any one of those functions, it must supply a handle to a topology object. 次の表は、VidPN オブジェクトとそのサブオブジェクトへのアクセスに使用されるハンドル、インターフェイス、およびポインターのデータ型を示しています。The following table lists the handle, interface, and pointer data types used to access a VidPN object and its sub-objects.

オブジェクトObject アクセスメソッドとデータ型Access method and data type

VidPN (VidPN インターフェイス)VidPN (VidPN Interface)

ハンドルとインターフェイスを介してアクセスされます。Accessed through handle and interface.

D3DKMDT_HVIDPND3DKMDT_HVIDPN

DXGK_VIDPN_INTERFACEDXGK_VIDPN_INTERFACE

トポロジ (VidPN トポロジインターフェイス)Topology (VidPN Topology Interface)

ハンドルとインターフェイスを介してアクセスされます。Accessed through handle and interface.

D3DKMDT_HVIDPNTOPOLOGYD3DKMDT_HVIDPNTOPOLOGY

DXGK_VIDPNTOPOLOGY_INTERFACEDXGK_VIDPNTOPOLOGY_INTERFACE

ソースモードセット (VidPN ソースモードセットインターフェイス)Source mode set (VidPN Source Mode Set Interface)

ハンドルとインターフェイスを介してアクセスされます。Accessed through handle and interface.

D3DKMDT_HVIDPNSOURCEMODESETD3DKMDT_HVIDPNSOURCEMODESET

DXGK_VIDPNSOURCEMODESET_INTERFACEDXGK_VIDPNSOURCEMODESET_INTERFACE

ターゲットモードセット (VidPN ターゲットモードセットインターフェイス)Target mode set (VidPN Target Mode Set Interface)

ハンドルとインターフェイスを介してアクセスされます。Accessed through handle and interface.

D3DKMDT_HVIDPNTARGETMODESETD3DKMDT_HVIDPNTARGETMODESET

DXGK_VIDPNTARGETMODESET_INTERFACEDXGK_VIDPNTARGETMODESET_INTERFACE

ソースモードセットの監視Monitor source mode set

ハンドルとインターフェイスを介してアクセスされます。Accessed through handle and interface.

D3DKMDT_HMONITORSOURCEMODESETD3DKMDT_HMONITORSOURCEMODESET

DXGK_MONITORSOURCEMODESET_INTERFACEDXGK_MONITORSOURCEMODESET_INTERFACE

PathPath

構造体ポインターを介してアクセスされます。Accessed through structure pointer.

D3DKMDT_VIDPN_PRESENT_PATHD3DKMDT_VIDPN_PRESENT_PATH

Source (ソース)Source

構造体ポインターを介してアクセスされます。Accessed through structure pointer.

D3DKMDT_VIDEO_PRESENT_SOURCED3DKMDT_VIDEO_PRESENT_SOURCE

対象Target

構造体ポインターを介してアクセスされます。Accessed through structure pointer.

D3DKMDT_VIDEO_PRESENT_TARGETD3DKMDT_VIDEO_PRESENT_TARGET

ソースモードSource mode

構造体ポインターを介してアクセスされます。Accessed through structure pointer.

D3DKMDT_VIDPN_SOURCE_MODED3DKMDT_VIDPN_SOURCE_MODE

ターゲットモードTarget mode

構造体ポインターを介してアクセスされます。Accessed through structure pointer.

D3DKMDT_VIDPN_TARGET_MODED3DKMDT_VIDPN_TARGET_MODE

ソースモードの監視Monitor source mode

構造体ポインターを介してアクセスされます。Accessed through structure pointer.

D3DKMDT_MONITOR_SOURCE_MODED3DKMDT_MONITOR_SOURCE_MODE

モニターの頻度の範囲セットMonitor frequency range set

構造体ポインターを介してアクセスされます。Accessed through structure pointer.

[DXGK_MONITORFREQUENCYRANGESET_INTERFACE DXGK_MONITORFREQUENCYRANGESET_INTERFACE ](https://docs.microsoft.com/windows-hardware/drivers/ddi/d3dkmddi/ns-d3dkmddi-_dxgk_monitorfrequencyrangeset_interface)

モニター記述子セットMonitor descriptor set

構造体ポインターを介してアクセスされます。Accessed through structure pointer.

[DXGK_MONITORDESCRIPTORSET_INTERFACEDXGK_MONITORDESCRIPTORSET_INTERFACE](https://docs.microsoft.com/windows-hardware/drivers/ddi/d3dkmddi/ns-d3dkmddi-_dxgk_monitordescriptorset_interface)

VidPN マネージャーVidPN Manager

DirectX グラフィックスカーネルサブシステムのコンポーネントの1つである VidPN マネージャーは、VidPNs をビルドして維持するためのディスプレイミニポートドライバーを使用して共同で動作します。The VidPN manager, which is one of the components of the DirectX graphics kernel subsystem, cooperates with the display miniport driver to build and maintain VidPNs. 次の手順では、表示ミニポートドライバーが、VidPN オブジェクトへのハンドルとインターフェイスを取得する方法について説明します。The following steps describe how the display miniport driver obtains a handle and an interface to a VidPN object.

  1. 初期化中に、DirectX graphics カーネルサブシステムは、ディスプレイミニポートドライバーのDxgkDdiStartDevice関数を呼び出します。During initialization, the DirectX graphics kernel subsystem calls the display miniport driver's DxgkDdiStartDevice function. この呼び出しでは、DirectX グラフィックスカーネルサブシステムによって実装されている関数へのポインターを含む、 DXGKRNL_インターフェイス構造を持つミニポートドライバーが表示されます。That call provides the display miniport driver with a DXGKRNL_INTERFACE structure, which contains pointers to functions implemented by the DirectX graphics kernel subsystem. これらの関数の1つはDxgkCbQueryVidPnInterfaceです。One of those functions is DxgkCbQueryVidPnInterface.

  2. ある時点で、VidPN マネージャーは、表示ミニポートドライバーのヘルプを必要とします。そのため、次の関数のいずれかを呼び出すことによって、表示ミニポートドライバーに、VidPN オブジェクトへのハンドルを提供します。At some point, the VidPN manager needs help from the display miniport driver, so it provides the display miniport driver with a handle to a VidPN object by calling one of the following functions:

  3. 表示ミニポートドライバーは、手順 2. で取得したハンドルをDxgkCbQueryVidPnInterfaceに渡します。これにより、 DXGK_VIDPN_インターフェイス構造へのポインターが返されます。The display miniport driver passes the handle obtained in Step 2 to DxgkCbQueryVidPnInterface, which returns a pointer to a DXGK_VIDPN_INTERFACE structure.

表示ミニポートドライバーには、VidPN オブジェクトへのハンドルとインターフェイスがあり、プライマリサブオブジェクト (トポロジ、ソースモードセット、ターゲットモードセット、監視ソースモードセット) へのハンドルとインターフェイス (必要に応じて) を取得できます。After the display miniport driver has a handle and an interface to a VidPN object, it can get handles and interfaces (as needed) to the primary sub-objects: topology, source mode set, target mode set, and monitor source mode set. たとえば、表示ミニポートドライバーは、 Pfngettopology (vidpn インターフェイス内の関数の1つ) を呼び出して、vidpn トポロジオブジェクトへのハンドルと、 DXGK_VIDPNTOPOLOGY_インターフェイス構造へのポインターを取得できます。For example, the display miniport driver can call pfnGetTopology (one of the functions in the VidPN interface) to get a handle to a VidPN topology object and a pointer to a DXGK_VIDPNTOPOLOGY_INTERFACE structure.

次の関数 (VidPN インターフェイス内) は、VidPN オブジェクトのプライマリサブオブジェクトに対するハンドルとインターフェイスを提供します。The following functions (in the VidPN interface) provide handles and interfaces to the primary sub-objects of a VidPN object.

前の一覧の2つの関数には、VidPN サブオブジェクトをリリースする対応する関数が含まれていることに注意してください。Note that two of the functions in the preceding list have corresponding functions that release VidPN sub-objects.

表示ミニポートドライバーは、VidPNs のいずれかのプライマリサブオブジェクトへのハンドルとインターフェイスを取得した後、そのサブオブジェクトに関連するオブジェクトの記述子を取得するためにインターフェイス関数を呼び出すことができます。After the display miniport driver obtains a handle and an interface to one of a VidPNs primary sub-objects, it can call the interface functions to get descriptors of objects related to the sub-object. たとえば、トポロジオブジェクトへのハンドルとインターフェイスを指定した場合、ディスプレイミニポートドライバーは、次の手順を実行してトポロジ内のすべてのパスの記述子を取得することができます。For example, given a handle and an interface to a topology object, the display miniport driver could perform the following steps to get descriptors of all the paths in topology.

  1. VidPN トポロジインターフェイスVidPN Topology interface

    VidPN トポロジインターフェイスのpfnAcquireFirstPathInfo関数を呼び出して、トポロジ内の最初のパスを記述する _パス構造の D3DKMDT_vidpn_ へのポインターを取得します。Call the pfnAcquireFirstPathInfo function of the VidPN topology interface to obtain a pointer to a D3DKMDT_VIDPN_PRESENT_PATH structure that describes the first path in the topology.

  2. VidPN トポロジインターフェイスVidPN Topology interface

    PfnAcquireNextPathInfo関数を繰り返し呼び出して、トポロジ内の残りのパスを記述する_パス構造の D3DKMDT_VIDPN_へのポインターを取得します。Call the pfnAcquireNextPathInfo function repeatedly to obtain pointers to D3DKMDT_VIDPN_PRESENT_PATH structures that describe the remaining paths in the topology.

同様に、表示ミニポートドライバーは、次のいずれかのモード設定インターフェイスのpfnAcquireFirstModeInfo関数とpfnAcquireNextModeInfo関数を呼び出すことによって、モードセットのモードの記述子を取得できます。Similarly, the display miniport driver can get descriptors of the modes in a mode set by calling the pfnAcquireFirstModeInfo and pfnAcquireNextModeInfo functions of any of the following mode set interfaces.

DXGK_VIDPNSOURCEMODESET_インターフェイスインターフェイスには、ソースモードセットからモードを削除するための機能がないことに注意してください。Note that the DXGK_VIDPNSOURCEMODESET_INTERFACE interface has no function for removing a mode from a source mode set. 表示ミニポートドライバーでソースモードセットを更新する必要がある場合、モードの追加と削除によって既存のモードが変更されることはありません。When the display miniport driver needs to update a source mode set, it does not alter an existing mode set by adding and removing modes. 代わりに、古いモードセットを置き換える新しいモードセットが作成されます。Instead, it creates a new mode set that replaces the old mode set. モードセットを更新する必要がある関数の例としては、ディスプレイミニポートドライバーのDxgkDdiEnumVidPnCofuncModality関数があります。An example of a function that must update mode sets is the display miniport driver's DxgkDdiEnumVidPnCofuncModality function. ソースモードセットの更新に必要な手順は次のとおりです。The steps involved in updating a source mode set are as follows:

  1. DXGK_VIDPNSOURCEMODESET_インターフェイスインターフェイスのpfnCreateNewModeInfoを呼び出して、 D3DKMDT_vidpn_ソース_モード構造体へのポインターを取得します (vidpn マネージャーによって割り当てられます)。Call the pfnCreateNewModeInfo of the DXGK_VIDPNSOURCEMODESET_INTERFACE interface to get a pointer to a D3DKMDT_VIDPN_SOURCE_MODE structure (allocated by the VidPN manager).

    Pfnaddmodeを繰り返し呼び出して、モードをソースモードセットに追加します。Call pfnAddMode repeatedly to add modes to the source mode set.

  2. DXGK_VIDPN_インターフェイスPfnassign Sourcemodeset関数を呼び出して、新しいモードセットを特定のビデオの存在するソースに割り当てます。Call the pfnAssignSourceModeSet function of the DXGK_VIDPN_INTERFACE to assign the new mode set to a particular video present source. 新しいソースモードセットによって、そのソースに現在割り当てられているソースモードセットが置き換えられます。The new source mode set replaces the source mode set that is currently assigned to that source.

ターゲットモードセットの更新は、ソースモードセットの更新に似ています。Updating a target mode set is similar to updating a source mode set. DXGK_VIDPNTARGETMODESET_interfaceインターフェイスには、次の関数があります。The DXGK_VIDPNTARGETMODESET_INTERFACE interface has the following functions:

特定のパスに属するソースとターゲットを取得するためのインターフェイス (関数のセット) はありません。There is no interface (set of functions) for obtaining the source and target that belong to a particular path. 表示ミニポートドライバーは、特定のパスに属するソースとターゲットを特定できます。そのためには、 D3DKMDT_VIDPN_存在する_のパス構造のメンバーを調べます。パスを表します。The display miniport driver can determine which source and target belong to a particular path by inspecting the VidPnSourceId and VidPnTargetId members of the D3DKMDT_VIDPN_PRESENT_PATH structure that represents the path.

関連項目See also

表示アダプターでの VidPN がサポートされているかどうかの確認Determining Whether a VidPN is Supported on a Display Adapter

Cofunctional な VidPN ソースモードとターゲットモードを列挙していますEnumerating Cofunctional VidPN Source and Target Modes

動画に関するネットワークの用語Video Present Network Terminology

追加のモニターターゲットモードの取得Obtaining Additional Monitor Target Modes