функция обратного вызова DXGKDDI_BEGINEXCLUSIVEACCESS (d3dkmddi.h)
Dxgkrnl вызывает DxgkDdiBeginExclusiveAccess , чтобы уведомить драйвер режима ядра о том, что произойдет переключение домена IOMMU.
Синтаксис
DXGKDDI_BEGINEXCLUSIVEACCESS DxgkddiBeginexclusiveaccess;
NTSTATUS DxgkddiBeginexclusiveaccess(
IN_CONST_HANDLE hAdapter,
IN_PDXGKARG_BEGINEXCLUSIVEACCESS pBeginExclusiveAccess
)
{...}
Параметры
hAdapter
[in] Дескриптор для блока контекста, связанного с видеоадаптером.
pBeginExclusiveAccess
[in] Указатель на структуру DXGKARG_BEGINEXCLUSIVEACCESS , содержащую входные аргументы для DxgkDdiBeginExclusiveAccess.
Возвращаемое значение
DxgkDdiBeginExclusiveAccess должен возвращать STATUS_SUCCESS, если операция выполнена успешно. В противном случае он должен вернуть соответствующий код ошибки NTSTATUS .
Комментарии
Подключение и отсоединение домена IOMMU выполняется очень быстро, но, тем не менее, в настоящее время не является атомарным. Это означает, что транзакция, выданная через PCIe, не гарантируется для правильного перевода при переключении в домен с разными сопоставлениями.
Чтобы справиться с этой ситуацией, Dxgkrnl вызывает следующую пару KMD DDI:
- DxgkDdiBeginExclusiveAccess для уведомления KMD о том, что произойдет переключение домена IOMMU.
- DxgkDdiEndExclusiveAccess после завершения переключения домена IOMMU.
Драйвер должен обеспечить бесшумную работу оборудования при каждом переключении устройства на новый домен IOMMU. То есть драйвер должен убедиться, что он не считывает и не записывает данные в системную память с устройства между этими двумя вызовами.
Между этими двумя вызовами Dxgkrnl гарантирует следующее:
- Планировщик будет приостановлен. Все активные рабочие нагрузки будут сброшены, и новые рабочие нагрузки не будут отправляться на оборудование или планироваться на оборудовании.
- Другие вызовы DDI выполняться не будут.
В рамках этих вызовов драйвер может отключить и отключить прерывания (включая прерывания виртуальной синхронизации) на время монопольного доступа, даже без явного уведомления ос.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10, версия 1803 (WDDM 2.4) |
Верхняя часть | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по