DxgkDdiSubmitCommand 関数は、GPU のハードウェア コマンド実行ユニットのいずれかに DMA バッファーを送信します。
構文
DXGKDDI_SUBMITCOMMAND DxgkddiSubmitcommand;
NTSTATUS DxgkddiSubmitcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_SUBMITCOMMAND pSubmitCommand
)
{...}
パラメーター
[in] hAdapter
ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバー (KMD) は、DxgkDdiAddDevice 関数のミニポートDeviceContext 出力パラメーターで Dxgkrnl にこのハンドルを以前に提供しました。
[in] pSubmitCommand
KMD がハードウェア コマンド実行ユニットに送信する DMA バッファーを記述する DXGKARG_SUBMITCOMMAND 構造体へのポインター。
戻り値
DxgkDdiSubmitCommand 、正常に完了すると STATUS_SUCCESS が返されます。 ドライバーが代わりにエラー コードを返す場合は、オペレーティング システムによってシステムのバグチェックが発生します。 「解説」を参照してください。
備考
DxgkDdiSubmitCommand は物理メモリ アドレス指定で動作しますが、 DxgkDdiSubmitCommandVirtual は仮想メモリで呼び出されます。
ページング操作はシステム操作と見なされるため、特定のアプリケーション コンテキストやグラフィックス コンテキストには関連付けされません。 したがって、送信がページング操作の場合、DxgkDdiSubmitCommand 関数は、pSubmitCommand パラメーターが指すDXGKARG_SUBMITCOMMAND構造体の hDevice メンバーで NULL を指定して呼び出されます。
ただし、特定のハードウェアとドライバーのアーキテクチャに内部的にデバイスが必要な場合、ドライバーは、アダプターの初期化中に内部的にデバイスを作成し、ページング操作で使用するシステムの既定のデバイスとして内部的にデバイスを保持する必要があります。
ドライバーは、リング バッファー内のフェンス コマンドにDXGKARG_SUBMITCOMMANDの SubmissionFenceId メンバーで指定された値を書き込むことができます。 フェンス コマンドの詳細については、「フェンス識別子のを提供する」を参照してください。
ドライバーからエラー コードが返された場合、 Dxgkrnl によってシステムバグチェックが発生します。 クラッシュ ダンプ ファイルでは、次の 4 つのパラメーターを持つ BugCheck 0x119メッセージによってエラーが示されます。
- 0x2 (エラーの原因を識別します)
- 失敗したドライバー呼び出しから返された NTSTATUS エラー コード
- DXGKARG_SUBMITCOMMAND 構造体へのポインター
- 内部スケジューラ データ構造へのポインター
DxgkDdiSubmitCommand IRQL = DISPATCH_LEVEL で実行されるため、ページ不可にする必要があります。
必要条件
| 要件 | 価値 |
|---|---|
| サポートされる最小クライアント | Windows Vista |
| ターゲット プラットフォーム の | デスクトップ |
| ヘッダー | d3dkmddi.h |
| IRQL | DISPATCH_LEVEL |
関連項目
DxgkDdiAddDeviceの
DxgkDdiRenderをする
DxgkDdiSubmitCommandVirtualをする