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