DXGKCB_DISCONNECTDOORBELL コールバック関数 (d3dkmddi.h)
重要
一部の情報はプレリリース製品に関連しており、商用リリース前に大幅に変更される可能性があります。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
KMD は DxgkCbDisconnectDoorbell を呼び出して、KMD が以前に接続したドアベルをハードウェア キューから切断する必要があることを Dxgkrnl に通知します。
構文
DXGKCB_DISCONNECTDOORBELL DxgkcbDisconnectdoorbell;
NTSTATUS DxgkcbDisconnectdoorbell(
INOUT_PDXGKARGCB_DISCONNECTDOORBELL pArgs
)
{...}
パラメーター
pArgs
[入力]切断するドアベルを記述する DXGKARGCB_DISCONNECTDOORBELL 構造体へのポインター。
戻り値
DxgkCbDisconnectDoorbell は、Dxgkrnl で hHwQueue に関連付けられている hDoorbell が見つからない場合、または DisconnectReason がD3DDDI_DOORBELLSTATUS_DISCONNECTED_XXX 値の 1 つでない場合は、STATUS_INVALID_PARAMETERを返します。 他のすべての場合、ドアベルが既に切断されている場合でも、この関数は成功します。
注釈
KMD はこの関数を呼び出して、ドアベルを切断する必要があるときに Dxgkrnl に通知します。 KMD では、このコールバックから戻った後にのみ、物理的なドアベル アドレスが切断されると見なす必要があります。
Dxgkrnl は 仮想アドレスのマップを解除し、ドアベルを切断済みとしてマークします。 具体的には、 Dxgkrnl はドアベルを切断するために次の手順を実行します。
- UMD が物理的なドアベルの場所に書き込めなくなったように、ユーザー モードの DoorbellCpuVirtualAddress をダミー ページに回転させます。
- DisconnectReason を DoorbellStatusCpuVirtualAddress に書き込み、ドアベルが切断され、その理由が UMD に認識されるようにします。
詳細については、「 ユーザー モードの作業の送信」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 11バージョン 24H2 (WDDM 3.2) |
Header | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |