次の方法で共有


DXGKDDI_DSIRESET コールバック関数 (dispmprt.h)

構文

DXGKDDI_DSIRESET DxgkddiDsireset;

NTSTATUS DxgkddiDsireset(
  [in]  HANDLE Context,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId,
  [out] PDXGK_DSI_RESET pArgs
)
{...}

パラメーター

[in] Context

[in] TargetId

モニターのターゲット識別子。

[out] pArgs

DXGI_DSI_CAPS 構造体へのポインター。

戻り値

DxgkddiDsiReset 成功するとSTATUS_SUCCESSが返されます。それ以外の場合は、Ntstatus.hで定義されているエラー コードのいずれかを返します。

備考

OEM パネル ドライバーは、パネルが正しくない状態であることを検出した場合、グラフィックス ドライバーと OS コントロールの下でデバイスのリセットを要求する IOCTL_MIPI_DSI_RESET を送信します。 リセットは必ずしも重い操作であり、複数のフレームに対してディスプレイのブランクが発生するため、最後の手段としてのみ使用する必要があります。

通常のパネル操作はリセットの処理中に続行できないため、OS は表示モードの変更、フリップを含む保留中の GPU アクティビティのフラッシュ、完了するまで新しい作業のブロックと非常によく似ています。 OS は、IOCTL を DDI 呼び出し DxgkDsiReset に変換します。 ドライバーは、パネルから電源を完全に削除し、ゼロから再初期化する必要があります。適切な遅延が発生した後、戻る前にパネルを実行可能な状態に復元するために必要なアクションを実行します。 設定すると、SecondaryPort フラグは、リセットがプライマリではなくセカンダリ パネルを対象とすることを示します。

グラフィックス ドライバーで、パネルのリセットを実行または復元するためにフル モードを設定する必要がある場合は、出力フラグを NeedModeSet設定する必要があります。 呼び出しから戻ると、OS は通常のアクティビティのブロックを解除する前に、DxgkDdiSetTimingsFromVidPn 呼び出しで応答します。 設定されたタイミング呼び出しの後に実行可能な状態が予想される場合、ドライバーは、必要に応じて、この呼び出しにリセット作業の一部を延期することを選択できます。

グラフィックス ドライバーは、MipiErrors 出力フィールドを介してドライバーによって検出され、処理されない低レベルの MIPI エラーを報告する必要があります。

リセット中に回復不可能なエラーが発生した場合、グラフィックス ドライバーは ResetFailed 出力フラグを設定する必要があります。 これは致命的な障害になると予想されます。 また、グラフィックス ドライバーは、DxgkCbIndicateConnectorChange コールバックを使用して取り外しが発生したことを示し、失敗したターゲットに対して TargetStatusDisconnected を報告して DxgkDdiQueryConnectionChangeに応答することで、ターゲットでディスプレイが使用できないことも通知する必要があります。

出力フィールドは、IOCTL の出力バッファーに反映されます。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 2004
ヘッダー dispmprt.h

関連項目

DxgkCbIndicateConnectorChange

DxgkDdiQueryConnectionChangeする

DxgkDdiSetTimingsFromVidPn

IOCTL_MIPI_DSI_RESET