次の方法で共有


DXGKCB_DISCONNECTDOORBELL コールバック関数 (d3dkmddi.h)

重要

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

KMD は DxgkCbDisconnectDoorbell を呼び出して、KMD が以前に接続したドアベルをハードウェア キューから切断する必要があることを Dxgkrnl に通知します。

構文

DXGKCB_DISCONNECTDOORBELL DxgkcbDisconnectdoorbell;

NTSTATUS DxgkcbDisconnectdoorbell(
  INOUT_PDXGKARGCB_DISCONNECTDOORBELL pArgs
)
{...}

パラメーター

pArgs

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

戻り値

DxgkCbDisconnectDoorbell は、DxgkrnlhHwQueue に関連付けられている hDoorbell が見つからない場合、または DisconnectReasonD3DDDI_DOORBELLSTATUS_DISCONNECTED_XXX 値の 1 つでない場合は、STATUS_INVALID_PARAMETERを返します。 他のすべての場合、ドアベルが既に切断されている場合でも、この関数は成功します。

注釈

KMD はこの関数を呼び出して、ドアベルを切断する必要があるときに Dxgkrnl に通知します。 KMD では、このコールバックから戻った後にのみ、物理的なドアベル アドレスが切断されると見なす必要があります。

Dxgkrnl は 仮想アドレスのマップを解除し、ドアベルを切断済みとしてマークします。 具体的には、 Dxgkrnl はドアベルを切断するために次の手順を実行します。

  • UMD が物理的なドアベルの場所に書き込めなくなったように、ユーザー モードの DoorbellCpuVirtualAddress をダミー ページに回転させます。
  • DisconnectReasonDoorbellStatusCpuVirtualAddress に書き込み、ドアベルが切断され、その理由が UMD に認識されるようにします。

詳細については、「 ユーザー モードの作業の送信」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 11バージョン 24H2 (WDDM 3.2)
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

DXGKARGCB_DISCONNECTDOORBELL

DxgkDdiConnectDoorbell