Функция D3DKMTConnectDoorbell (d3dkmthk.h)
Важно!
Некоторые сведения относятся к предварительной версии продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
D3DKMTConnectDoorbell подключает (или повторно подключает) ранее созданный дверной звонок к очереди оборудования.
Синтаксис
NTSTATUS D3DKMTConnectDoorbell(
D3DKMT_CONNECT_DOORBELL *unnamedParam1
);
Параметры
unnamedParam1
[in] Указатель на структуру *D3DKMT_CONNECT_DOORBELL* , описывающую подключаемый дверный звонок.
Возвращаемое значение
D3DKMTConnectDoorbell возвращает STATUS_SUCCESS, когда ОС успешно подключает дверный звонок к очереди оборудования и UMD может использовать этот дверный звонок для отправки работ. Обычно этот вызов не должен завершаться ошибкой; однако код сбоя будет происходить из-за потери GPU или остановки типов неустранимых сценариев.
Комментарии
Каждый раз, когда UMD отправляет новые работы в очередь оборудования и звонит в дверный звонок, он должен считывать DoorbellStatusCPUVirtualAddress, чтобы проверка, успешно ли выполнен звонок. При сбое UMD должен вызвать D3DKMTConnectDoorbell для повторного подключения дверного звонка, а затем повторить попытку отправки.
Дверный звонок может быть отключен по нескольким причинам:
- При создании дверного звонка ОС инициализирует его в состоянии "отключен" и подключается только тогда, когда UMD вызывает D3DKMTConnectDoorbell в первый раз.
- Дверный звонок был "жертвой" на оборудовании, которое поддерживает специальную модель дверного звонка. То есть физический дверной звонок очереди оборудования был назначен другой очереди оборудования. Это переназначение, скорее всего, связано с тем, что в GPU создано больше аппаратных очередей, чем физических дверных колокольных колокольных вызовов.
- Дверной звонок был отключен в рамках приостановки очереди оборудования или выключения GPU.
Когда UMD вызывает D3DKMTConnectDoorbell для подключения дверного звонка, назначенного очереди оборудования, ОС выполняет соответствующий вызов DxgkDdiConnectDoorbell к KMD, чтобы KMD мог найти физический дверный звонок, назначить его этой очереди оборудования и установить необходимые подключения между очередью оборудования, дверным звонком, планировщиком GPU и т. д.
Дополнительные сведения см. в разделе Отправка рабочих данных в пользовательском режиме.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 11 версии 24H2 (WDDM 3.2) |
Верхняя часть | d3dkmthk.h |