VIDEO_PORT_DEBUG_REPORT_INTERFACE構造 (video.h)
VIDEO_PORT_DEBUG_REPORT_INTERFACE構造体は、ビデオ ポート ドライバーによって実装されるデバッグ レポート関数へのポインターを保持します。
構文
typedef struct _VIDEO_PORT_DEBUG_REPORT_INTERFACE
{
IN USHORT Size;
IN USHORT Version;
OUT PVOID Context;
OUT PINTERFACE_REFERENCE InterfaceReference;
OUT PINTERFACE_DEREFERENCE InterfaceDereference;
OUT
PVIDEO_DEBUG_REPORT
(*DbgReportCreate)(
IN PVOID HwDeviceExtension,
IN ULONG ulCode,
IN ULONG_PTR ulpArg1,
IN ULONG_PTR ulpArg2,
IN ULONG_PTR ulpArg3,
IN ULONG_PTR ulpArg4
);
OUT
BOOLEAN
(*DbgReportSecondaryData)(
IN OUT PVIDEO_DEBUG_REPORT pReport,
IN PVOID pvData,
IN ULONG ulDataSize
);
OUT
VOID
(*DbgReportComplete)(
IN OUT PVIDEO_DEBUG_REPORT pReport
);
} VIDEO_PORT_DEBUG_REPORT_INTERFACE, *PVIDEO_PORT_DEBUG_REPORT_INTERFACE;
メンバー
Size
この構造体のサイズをバイト単位で指定します。
Version
ビデオ ポート ドライバーによって返されるインターフェイスのバージョンを指定します。 現在、サポートされているバージョンはVIDEO_PORT_DEBUG_REPORT_INTERFACE_VERSION_1のみです。
Context
ビデオ ポート ドライバーによって提供されるコンテキストへのポインター。
InterfaceReference
ビデオ ポート ドライバーによって実装されるインターフェイス参照関数へのポインター。
InterfaceDereference
ビデオ ポート ドライバーによって実装されるインターフェイス逆参照関数へのポインター。
OUT (IN PVOID HwDeviceExtension,IN ULONG ulCode,IN ULONG_PTR ulpArg1,IN ULONG_PTR ulpArg2,IN ULONG_PTR ulpArg3,IN ULONG_PTR ulpArg4) PVIDEO_DEBUG_REPORT( *DbgReportCreate unnamedParam1)
OUT (IN OUT PVIDEO_DEBUG_REPORT pReport,IN PVOID pvData,IN ULONG ulDataSize) BOOLEAN( *DbgReportSecondaryData unnamedParam1)
OUT (IN OUT PVIDEO_DEBUG_REPORT pReport) VOID( *DbgReportComplete unnamedParam1)
注釈
ビデオ ミニポート ドライバーは、この構造体の Size メンバーと Version メンバーを提供し、 VideoPortQueryServices を呼び出して、残りのメンバーを初期化します。
ビデオ ミニポート ドライバーがエラーを検出し、そこから回復する場合は、後で次のように VIDEO_PORT_DEBUG_REPORT_INTERFACE のコールバック関数メンバーを呼び出すことによってデバッグに使用できるエラー レポートを作成できます。
- 最初に 、DbgReportCreate を呼び出して初期レポートを作成します。
- 次に、 DbgReportSecondaryData に対して 1 つ以上の呼び出しを行って、レポートにデータを追加します。
- レポートへのデータの追加が完了したら、 DbgReportComplete を呼び出します。
エラー レポートはファイルに保存され、コンピューターの再起動時に Microsoft に送信されるようにスケジュールされます。 エラー レポートには、エラー コードと 4 つの引数が含まれています。 エラー コードと最初の 3 つの引数は、 DbgReportCreate の呼び出し元によって提供されます。 レポートの 4 番目の引数はオペレーティング システムによって提供され、コンピューターの起動後に生成されたレポートの数を示します。 たとえば、 ulpArg4 の値が 5 の場合は、コンピューターが最後に起動されてから、ディスプレイ ミニポート ドライバーによって 4 つの以前のエラー レポートが生成されたことを意味します。 各レポートは前のレポートを上書きするため、5 番目のレポートのみが保存されます。
DbgReportCreate によって返され、その後 DbgReportSecondaryData に渡され、DbgReportComplete が不透明であるVIDEO_DEBUG_REPORT構造体。 メンバーに直接アクセスしないでください。
次のセクションでは、これらのコールバック関数について詳しく説明します。 これらのコールバックは、IRQL = PASSIVE_LEVELで呼び出す必要があります。
DbgReportCreate
DbgReportCreate によって初期エラー レポートが作成されます。 システム イベント ログにエントリを作成し、エラーをユーザーに通知し、エラー レポートを Microsoft にアップロードする機会を示すダイアログ ボックスを表示します。 DbgReportCreate は、新しく作成されたデバッグ レポートへのハンドルを表す不透明な VIDEO_DEBUG_REPORT 構造体へのポインターを返します。
DbgReportCreate パラメーター
- HwDeviceHandle [in] ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーは、DxgkDdiAddDevice 関数でこのハンドルを作成しました。 このパラメーターは、NULL でもかまいません。
- ulCode [in] エラー レポートのコード。 サポートされているコードは、THREAD_STUCK_IN_DEVICE_DRIVER VIDEO_DRIVER_DEBUG_REPORT_REQUEST、VIDEO_TDR_FATAL_ERROR、VIDEO_TDR_SUCCESSです。
- ulpArg1 [in] レポートに追加する最初の引数。 ディスプレイ ミニポート ドライバーの開発者は、 ulpArg1 の値と意味を決定します。
- ulpArg2 [in] レポートに追加する 2 番目の引数。 ディスプレイ ミニポート ドライバーの開発者は、 ulpArg2 の値と意味を決定します。
- ulpArg3 [in] レポートに追加する 3 番目の引数。 ディスプレイ ミニポート ドライバーの開発者は、 ulpArg3 の値と意味を決定します。
- ulpArg4 [in] システム用に予約されています。
DbgReportSecondaryData
DbgReportSecondaryData 関数は、 DbgReportCreate によって以前に作成された初期エラー レポートにデータを追加します。 DbgReportSecondaryData が成功すると、TRUE が返されます。 それ以外の場合は、 FALSE を返します。
DbgReportSecondaryData を呼び出して、DbgReportCreate の以前の呼び出しによって作成された初期レポートにデータを追加します。 DbgReportSecondaryData は複数回呼び出すことができますが、呼び出しのたびに、レポートに書き込まれたデータによって、前の呼び出しによって書き込まれたデータが上書きされます。 次の手順では、レポートにデータを増分的に追加するための適切な戦略を示します。
- 収集する最も安全なデータを取得します。
- DbgReportSecondaryData を呼び出して、そのデータをレポートに書き込みます。
- 収集するリスクの高いデータを取得します。
- DbgReportSecondaryData を呼び出して、新しく収集された危険なデータと共に元の安全なデータをレポートに書き込みます。 この呼び出しによって書き込まれたデータは 、DbgReportSecondaryData の最初の呼び出しによって書き込まれたデータを上書きするため、この呼び出しには安全なデータと危険なデータの両方を含める必要があります。
- 追加するデータがなくなったら、 DbgReportSecondaryData を呼び出し続け、毎回データを拡張します。
レポートへのデータの追加が完了したら、 DbgReportComplete を呼び出してレポートを閉じます。 DbgReportComplete を呼び出す前にコンピューターの応答が停止した場合、DbgReportSecondaryData への最新の正常な呼び出しによってレポートに追加されたデータが保存され、コンピューターの再起動時に Microsoft に送信されます。
DbgReportSecondaryData パラメーター
- hReport [in, out] データを追加するエラー レポートのハンドル。 ディスプレイ ミニポート ドライバーは、以前に DbgReportCreate を呼び出してこのハンドルを取得しました。
- pvData [in] レポートに追加するデータを保持するバッファーへのポインター。
- ulDataSize [in] レポートに追加するデータのサイズ (バイト単位)。 このパラメーターの値は、DXGK_DEBUG_REPORT_MAX_SIZE以下である必要があります。
DbgReportComplete
DbgReportComplete 関数は、エラー レポートを閉じ、レポートに関連付けられているリソースを解放します。
DbgReportComplete は、システム イベント ログにエントリを作成し、エラーとエラー レポートを Microsoft にアップロードする機会をユーザーに通知するダイアログ ボックスを表示します。
DbgReportComplete パラメーター
- hReport 閉じるエラー レポートへのハンドルを含む VIDEO_DEBUG_REPORT 構造体へのポインター。 ディスプレイ ミニポート ドライバーは、以前に DbgReportCreate を呼び出してこのハンドルを取得しました。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP SP2 |
サポートされている最小のサーバー | Windows Server 2003 SP1 |
Header | video.h (Video.h を含む) |