функция обратного вызова DXGKCB_DISCONNECTDOORBELL (d3dkmddi.h)
Важный
Некоторые сведения относятся к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.
KmD вызывает DxgkCbDisconnectDoorbell, чтобы уведомить Dxgkrnl, что KMD должен отключить ранее подключенную дверь из очереди оборудования.
Синтаксис
DXGKCB_DISCONNECTDOORBELL DxgkcbDisconnectdoorbell;
NTSTATUS DxgkcbDisconnectdoorbell(
INOUT_PDXGKARGCB_DISCONNECTDOORBELL pArgs
)
{...}
Параметры
pArgs
[in] Указатель на структуру DXGKARGCB_DISCONNECTDOORBELL, описывающую отключение двери.
Возвращаемое значение
DxgkCbDisconnectDoorbell возвращает STATUS_INVALID_PARAMETER, если Dxgkrnl не удается найти связанный hDoorbell для hHwQueueили если DisconnectReason не является одним из D3DDDI_DOORBELLSTATUS_DISCONNECTED_XXX. Во всех остальных случаях эта функция завершается успешно, даже если дверь уже отключена.
Замечания
KMD вызывает эту функцию, чтобы уведомить Dxgkrnl, когда необходимо отключить дверь. KMD следует учитывать, что физический адрес двери должен быть отключен только после возвращения из этого обратного вызова.
Dxgkrnl распаковывает виртуальные адреса и помечает дверь как отключенные. В частности, Dxgkrnl выполняет следующие действия, чтобы отключить дверь:
- Поворот пользовательского режима DoorbellCpuVirtualAddress на фиктивную страницу, чтобы UMD больше не может записывать данные в физическое расположение двери.
- Записывает DisconnectReason в DoorbellStatusCpuVirtualAddress, чтобы UMD знал, что дверь отключена и причина, почему.
Дополнительные сведения см. в рабочей отправки в режиме пользователя.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 11 версии 24H2 (WDDM 3.2) |
заголовка | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |