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

こちらもご覧ください

D3DKMT_CONNECT_DOORBELL

D3DKMTCreateDoorbell

DxgkDdiConnectDoorbell