D3DKMTConnectDoorbell 関数 (d3dkmthk.h)

重要

一部の情報はプレリリース製品に関連しており、商用リリース前に大幅に変更される可能性があります。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。

D3DKMTConnectDoorbell は、 以前に作成した doorbell オブジェクト をハードウェア キューに接続 (または再接続) します。

構文

NTSTATUS D3DKMTConnectDoorbell(
  D3DKMT_CONNECT_DOORBELL *unnamedParam1
);

パラメーター

unnamedParam1

[入力]接続するドアベルを記述する D3DKMT_CONNECT_DOORBELL 構造体へのポインター。

戻り値

D3DKMTConnectDoorbell は、OS がドアベル オブジェクトをハードウェア キューに正常に接続したときにSTATUS_SUCCESSを返し、UMD はこのドアベルを作業送信に使用できます。 通常、この呼び出しは失敗しません。ただし、障害コードは、GPU の紛失または回復不可能なシナリオの種類の停止から発生します。

注釈

UMD がキューに新しい作業を送信し、ドアベルを呼び出すたびに、ドアベル リングが成功したかどうかをチェックするには、pDoorbellStatusCPUVirtualAddress を読み取る必要があります。 失敗した場合、UMD は D3DKMTConnectDoorbell を呼び出してドアベルを再接続してから、もう一度送信を試す必要があります。

ドアベルは、次のようないくつかの理由で切断できます。

  • ドアベルが作成されると、OS によって "切断された" 状態で初期化され、UMD が D3DKMTConnectDoorbell を初めて呼び出したときにのみ接続されます。
  • ドアベルは、専用のドアベル モデルをサポートするハードウェアで "被害を受けた" ものでした。 つまり、このハードウェア キューの物理ドアベルは、別のハードウェア キューに割り当てられました。 この再割り当ては、GPU 上に作成されるハードウェア キューが物理ドアベルよりも多いためです。
  • ハードウェア キューの中断または GPU の電源切断の一環として、ドアベルが切断されました。

UMD が D3DKMTConnectDoorbell を呼び出してハードウェア キューに割り当てられたドアベルを接続すると、OS は KMD に対応する DxgkDdiConnectDoorbell 呼び出しを行います。これにより、KMD は物理ドアベルを見つけ、このハードウェア キューに割り当て、ハードウェア キュー、ドアベル、GPU スケジューラなどの間で必要な接続を行うことができます。

要件

要件
サポートされている最小のクライアント WIN11_FUTURE
Header d3dkmthk.h

こちらもご覧ください

D3DKMT_CONNECT_DOORBELL

D3DKMTCreateDoorbell

DxgkDdiConnectDoorbell