ユーザー モードからカーネル モードに送信されるプライベート データの検証
ディスプレイ ミニポート ドライバーは、プライベート データが無効な場合にミニポート ドライバーのクラッシュ、無応答 (ハング)、アサート、メモリ破損の発生を防ぐために、ユーザー モード ディスプレイ ドライバーから送信されたすべてのプライベート データを検証する必要があります。 ただし、"ハング" したハードウェアはオペレーティング システムによってリセットされるので、グラフィック処理装置 (GPU) が "ハング" するような命令をディスプレイ ミニポート ドライバーから GPU に送信してもかまいません。プライベート データの例を次に示します。
ミニポート ドライバーの DxgkDdiRender 関数または DxgkDdiRenderKm 関数に送信されるコマンド バッファー コンテンツ (DXGKARG_RENDER 構造体の pCommand バッファー メンバー)。
次のミニポート ドライバー関数に送信されるデータ:
- DxgkDdiCreateAllocation 関数 (DXGKARG_CREATEALLOCATION 構造体および DXGK_ALLOCATIONINFO 構造体の pPrivateDriverData バッファー メンバー)。
- DxgkDdiEscape 関数 (DXGKARG_ESCAPE 構造体の pPrivateDriverData バッファー メンバー)。
- DxgkDdiAcquireSwizzlingRange 関数 (DXGKARG_ACQUIRESWIZZLINGRANGE 構造体の PrivateDriverData 32 ビット メンバー)。
- DxgkDdiReleaseSwizzlingRange 関数 (DXGKARG_RELEASESWIZZLINGRANGE 構造体の PrivateDriverData 32 ビット メンバー)。
- DxgkDdiQueryAdapterInfo 関数 (DXGKARG_QUERYADAPTERINFO 構造体の pInputData バッファー メンバー)。(DXGKQAITYPE_UMDRIVERPRIVATE 値が Type メンバーで指定されている場合)。