функция обратного вызова DXGKDDI_RESETHWENGINE (d3dkmddi.h)
Dxgkrnl вызывает функцию DxgkDdiResetHwEngine драйвера минипорта дисплея (KMD), когда требуется сброс ядра GPU.
Синтаксис
DXGKDDI_RESETHWENGINE DxgkddiResethwengine;
NTSTATUS DxgkddiResethwengine(
IN_CONST_HANDLE hAdapter,
INOUT_PDXGKARG_RESETHWENGINE pResetHwEngine
)
{...}
Параметры
hAdapter
[in] Дескриптор для блока контекста, связанного с видеоадаптером. KMD ранее предоставлял этот дескриптор Dxgkrnl в выходном параметре MiniportDeviceContext функции DxgkDdiAddDevice .
pResetHwEngine
[вход/выход] Указатель на структуру DXGKARG_RESETHWENGINE , содержащую сведения для сброса аппаратного модуля.
Возвращаемое значение
DxgkDdiResetHwEngine возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае он должен вернуть соответствующий код ошибки NTSTATUS.
Комментарии
Реализация DxgkDdiResetHwEngine должна вызывать обратный вызов DxgkCbInvalidateHwContext , чтобы сообщить ОС обо всех запущенных контекстах, на которые повлияла операция сброса ядра GPU. ОС сделает эти контекстные устройства недействительными (установит их по ошибке) и не будет выполнять последующие отправки.
Подсистема еще не считается возобновленной после вызова DxgkDdiResetHwEngine , поэтому контексты, которые не были признаны недействительными, не допускаются к отправке. Операционной системе необходимо повторно включить прерывания из этого модуля и синхронизировать его состояние с подсистемой сброса GPU. После этого ОС включит прерывания и вызовет DxgkDdiResumeHwEngine, который предписывает обработчику GPU начать планирование всех контекстов, доступных для запуска, которые не были затронуты сбросом подсистемы.
Зарегистрируйте реализацию этой функции обратного вызова в структуре **DRIVER_INITIALIZATION_DATA ** .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 версии 1703 (WDDM 2.2) |
Верхняя часть | d3dkmddi.h |