функция обратного вызова DXGKDDI_UPDATECURRENTVALUESFROMCPU (d3dkmddi.h)
ОС вызывает DxgkDdiUpdateCurrentValuesFromCpu для обновления CurrentValue пакета собственных заборов из ЦП.
Синтаксис
DXGKDDI_UPDATECURRENTVALUESFROMCPU DxgkddiUpdatecurrentvaluesfromcpu;
NTSTATUS DxgkddiUpdatecurrentvaluesfromcpu(
IN_CONST_PDXGKARG_UPDATECURRENTVALUESFROMCPU pUpdateCurrentValuesFromCpu
)
{...}
Параметры
pUpdateCurrentValuesFromCpu
[in] Указатель на структуру DXGKARG_UPDATECURRENTVALUESFROMCPU, содержащую текущие значения для обновления.
Замечания
Этот DDI используется для поддержки существующей семантики API сигнала от ЦП. Вместо Dxgkrnl написании нового CurrentValueдрайверу предлагается написать CurrentValue, чтобы предоставить драйверам возможность вставки всех необходимых предварительных синхронизаций и барьеров. ОС синхронизирует обновления на стороне ЦП и гарантирует, что самое актуальное значение доступно для DxgkDdiUpdateCurrentValuesFromCpu. После обновления CurrentValueдрайвер должен активировать GPU для разблокировки аппаратных очередей, ожидающих этого забора и разблокировавших обновление до CurrentValue.
В кратком разделе приведены шаги, которые следует за драйвером:
for i = 1 : NumFences
1. Insert pre-write memory barrier if required
2. write new value to CurrentValueCpuVa
3. trigger GPU to unblock any HwQueues that got unblocked by the updated CurrentValue
end
ОС гарантирует, что указатель CurrentValueKernelCpuVa действителен в течение этого вызова DDI, а не до или после него. Таким образом, KMD никогда не должен кэшировать этот указатель для использования в другом месте.
Дополнительные сведения о собственных ограждениях GPU см. в разделе Объекты забора собственного GPU.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 11 версии 24H2 |
заголовка | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |