ドライバー開発中の TDR のテストとデバッグ

この記事では、ディスプレイ ドライバー開発者向けの TDR (タイムアウト検出と回復) テストとデバッグ戦略について説明します。

WHLK での TDR テスト

Windows Hardware Lab Kit (WHLK) には、ドライバー開発者がテストとデバッグの目的で使用できる TDR 固有のテストが含まれています。 たとえば、開発者は SimulatePreemption TDR を使用して GPU TDR を手動でトリガーできます。 さまざまな TDR 関連のテストの詳細については、「 Device.Graphics 」を参照してください。

テストとデバッグ用の TDR レジストリ キー

開発者は、 ドライバー開発プロセス中にのみ、テストまたはデバッグの目的で次の TDR 関連のレジストリ キーを使用できます。

重要

これらのレジストリ キーは、エンド ユーザーや、ドライバーの開発中に対象となるテストやデバッグ以外のアプリケーションによって操作されるべきではありません。

TdrLevel

回復の初期レベルを指定します。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrLevel
ValueType : REG_DWORD
ValueData : TdrLevelXxx (see the following table)

TdrLevelXxx には 、次のいずれかの値を指定できます。

意味
TdrLevelOff (0) 検出が無効
TdrLevelBugcheck (1) 検出されたタイムアウトのバグ チェック。たとえば、復旧なし。
TdrLevelRecoverVGA (2) VGA に復旧します (実装されていません)。
TdrLevelRecover (3) タイムアウト時に復旧します (既定値)。

TdrDelay

GPU スケジューラからのプリエンプト要求を GPU が遅延できる秒数を指定します。 TdrDelay は実質的にタイムアウトしきい値です。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDelay
ValueType : REG_DWORD
ValueData : Number of seconds to delay. The default value is 2 seconds.

TdrDdiDelay

OS でスレッドがドライバーから離れることを許可する秒数を指定します。 指定された時間が経過すると、OS はコード VIDEO_TDR_FAILURE (0x116) を使用してコンピューターをバグチェックします。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDdiDelay
ValueType : REG_DWORD
ValueData : Number of seconds to leave the driver. The default value is 5 seconds.

TdrDebugMode

TDR プロセスのデバッグ関連の動作を指定します。 既定値はTDR_DEBUG_MODE_RECOVER_NO_PROMPTであり、デバッガーに中断しないことを示します。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
意味
TDR_DEBUG_MODE_OFF (0) タイムアウトの調査を可能にするために、回復の前にカーネル デバッガーに中断します。
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) タイムアウトを無視します。
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) デバッガーに分割せずに復旧します (既定値)。
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) 一部の回復条件が満たされていない場合でも復旧します (たとえば、連続するタイムアウト時に復旧します)。

TdrLimitTime

コンピューターをクラッシュさせることなく、特定の数の TDR ( TdrLimitCount キーで指定) を許可する既定の時刻を指定します。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrLimitTime
ValueType : REG_DWORD
ValueData : Number of seconds before crashing. The default value is 60 seconds.

TdrLimitCount

コンピューターをクラッシュさせることなく TdrLimitTime キーで指定された時間内に許可される TDR (0x117) の既定の数を指定します。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrLimitCount
ValueType : REG_DWORD
ValueData : Number of TDRs before crashing. The default value is 5.

TdrTestMode

予約済み。 使用しないでください。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrTestMode
ValueType : REG_DWORD
ValueData : Do not use.