DXGKARG_COMMITVIDPN_FLAGS 構造体 (d3dkmddi.h)
DXGKARG_COMMITVIDPN_FLAGS構造体は、 DxgkDdiCommitVidPn 関数の呼び出しに関する詳細を識別します。
構文
typedef struct _DXGKARG_COMMITVIDPN_FLAGS {
UINT PathPowerTransition : 1;
UINT PathPoweredOff : 1;
UINT Reserved : 30;
} DXGKARG_COMMITVIDPN_FLAGS;
メンバー
PathPowerTransition
Microsoft DirectX グラフィックス カーネル サブシステムが DxgkDdiCommitVidPn 関数を呼び出して接続されているモニターの電源をオフにするかどうかを指定する UINT 値。
PathPowerTransition が TRUE に設定されている場合、ディスプレイ ミニポート ドライバーは、電源を切るためにこの呼び出しを最適化できます (たとえば、ドライバーは垂直方向の同期を無効にすることがあります)。 また、ドライバーは、影響を受けるソースで DxgkDdiPresent 関数の呼び出しを受け取る可能性があることにも注意する必要があります。
このメンバーの設定は、32 ビット値 (0x00000001) の最初のビットを設定することと同じです。
詳細については、「解説」を参照してください。
PathPoweredOff
DirectX グラフィックス カーネル サブシステムが DxgkDdiCommitVidPn を呼び出して、ユーザーがモードを変更したことをドライバーに通知するかどうかを指定する UINT 値。
PathPoweredOff が TRUE に設定されている場合、ディスプレイ ミニポート ドライバーは、新しいトポロジに基づく現在の操作を想定する必要があります。 モニターの電源をオフにする必要があるため、ドライバーはトポロジ パスの電源を再びオンにする操作を実行できません (たとえば、ドライバーは垂直同期を有効にできません)。
PathPoweredOff が FALSE に設定されている場合、トポロジ パスの電源がオンになります。 ディスプレイ ミニポート ドライバーは、以前のトポロジ パスに基づく現在の操作のハードウェアをプログラムする必要があります、ドライバーは、このトポロジ パスをサポートするハードウェアをコミットする必要があります。 このメンバーの設定は、32 ビット値 (0x00000002) の 2 番目のビットを設定することと同じです。
詳細については、「解説」を参照してください。
Reserved
このメンバーは予約済みであり、0 に設定する必要があります。 このメンバーを 0 に設定することは、32 ビット値の残りの 30 ビット (0xFFFFFFFC) をゼロに設定することと同じです。
注釈
DXGKARG_COMMITVIDPN_FLAGS構造体には、ディスプレイ ミニポート ドライバーが要求されたモードの変更に応答する方法を決定するために使用できる情報が格納されます。 この情報を使用すると、ドライバーは、アプリケーションがモードの変更を要求したため、通常のアクティビティ中に発生するモードの変更、電源切り替えのために発生する変更、およびモニターがオフになっている間に発生する変更を区別できます。
通常のアクティビティでは、 DxgkDdiCommitVidPn 関数が呼び出されると、 PathPowerTransition メンバーと PathPoweredOff メンバーの両方が FALSE になり、ドライバーはモードの変更を直ちに適用する必要があります。 このようなモードの変更は、通常、分離イベントとして実行されます。 そのため、ドライバーが前のモード構成に関連付けられている状態を追跡する必要はありません。
モニターの電源がオフになっているかオンになっている場合、電源切り替えを示す PathPowerTransition は TRUE になります。 この場合、一般的なパターンは、モニターがオフになり、後で元の構成が復元されることです。 システムのシャットダウン後に表示構成を完全にリセットすることは、ドライバーにとって重要なワークロードになる可能性があります。 さらに、モニターがオフになっている間、ドライバーは DxgkDdiPresent 操作を完了し続ける必要があります。 ただし、ドライバーは、関係するモニターの電源がオフになっていることを確認することで、 DxgkDdiCommitVidPn の 呼び出しが行われたときにワークロードを減らすことができます。 電源が復元されると、表示構成を復元するドライバー ワークロードが削減されます。
モニターが物理的に接続されていない可能性があるため (たとえば、システムの再開時に)、ドライバーは、ディスプレイ アダプターの子デバイスの電源状態を設定する DxgkDdiSetPowerState 関数の後の呼び出しを行うために Windows に依存しないようにする必要があります。 ただし、Windows は引き続き CRTC を有効にするよう要求します。 ドライバーがディスプレイ モード マネージャー (DMM) によって要求されたときに垂直同期を有効にしない場合、ユーザーが後でモニターを再接続すると、モニターの表示が空白になる可能性があります。
モニターがオフになっている間も、DxgkDdiPresent 操作はドライバーによって引き続き受け入れられている必要があります。 ドライバーは、たとえば、回転の変更を考慮してレンダリング パイプラインの変更を実行するなど、アプリケーションによってトリガーされるモードの変更に対処する必要があります。 PathPowerTransition = FALSE と PathPoweredOff = TRUE の設定は、このようなモード変更が発生したことをドライバーに通知します。 この場合、ドライバーはモニターをオンにするのではなく、必要に応じてハードウェアを再プログラムして、追加の DxgkDdiPresent 操作を完了できるようにモードの変更に対応する必要があります。 このようなモード変更が実行され、後でモニターがオンに戻された場合、電源を切る前に発生したモードが復元される可能性は低くなります。
システムの中断操作に対してモニターがオフになった後にシステム再開操作がトリガーされた場合、ドライバーは、PathPowerTransitionTRUE で DxgkDdiCommitVidPn 呼び出しが行われる前に、PathPowerTransition = FALSE と PathPoweredOff = FALSE の両方で = DxgkDdiCommitVidPn 呼び出しを受け取ることができます。 この状況は、空のトポロジでのみ発生する必要があります。この場合、電源切り替えがまだ完了していないため、ドライバーはモニターをオンに戻さないでください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
Header | d3dkmddi.h (D3dkmddi.h を含む) |