функция обратного вызова 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 |