D3DKMTConnectDoorbell 関数 (d3dkmthk.h)
大事な
一部の情報は、市販される前に大幅に変更される可能性があるプレリリース製品に関連しています。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。
D3DKMTConnectDoorbell 、以前に作成したドアベル をハードウェア キューに接続 (または再接続) します。
構文
NTSTATUS D3DKMTConnectDoorbell(
D3DKMT_CONNECT_DOORBELL *unnamedParam1
);
パラメーター
unnamedParam1
[in]接続するドアベルを記述する *D3DKMT_CONNECT_DOORBELL* 構造体へのポインター。
戻り値
D3DKMTConnectDoorbell は、OS がドアベルをハードウェア キューに正常に接続し、UMD が作業の送信にこのドアベルを使用できる場合に、STATUS_SUCCESSを返します。 通常、この呼び出しは失敗しません。ただし、障害コードは、GPU の損失または回復不可能なシナリオの種類の停止から発生します。
備考
UMD がハードウェア キューに新しい作業を送信し、ドアベルを呼び出すたびに、ドアベル リングが成功したかどうかを確認するために、DoorbellStatusCPUVirtualAddress を読み取る必要があります。 失敗した場合、UMD は D3DKMTConnectDoorbell 呼び出してドアベルを再接続してから、もう一度送信を試す必要があります。
ドアベルは、いくつかの理由で切断される可能性があります。
- ドアベルが作成されると、OS はそれを "切断" 状態で初期化し、UMD が初めて D3DKMTConnectDoorbell 呼び出すときにのみ接続します。
- ドアベルは、専用のドアベル モデルをサポートするハードウェアで "被害を受けた" というものでした。 つまり、このハードウェア キューの物理ドアベルは、別のハードウェア キューに割り当てられました。 この再割り当ては、GPU 上に物理ドアベルよりも多くのハードウェア キューが作成されるためです。
- ドアベルは、ハードウェア キューの中断または GPU の電源オフの一環として切断されました。
UMD が D3DKMTConnectDoorbell 呼び出してハードウェア キューに割り当てられたドアベルを接続すると、OS は対応する DxgkDdiConnectDoorbell KMD への呼び出しを行います。これにより、KMD は物理的なドアベルを見つけ、このハードウェア キューに割り当て、ハードウェア キュー、ドアベル、GPU スケジューラなどの間で必要な接続を行うことができます。
詳細については、「ユーザー モードの作業の送信 をする」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 11 バージョン 24H2 (WDDM 3.2) |
ヘッダー | d3dkmthk.h |