Поделиться через


функция обратного вызова DXGKDDI_SUSPENDCONTEXT (d3dkmddi.h)

DxgkddiSuspendContext указывает GPU приостановить контекст. Если GPU не подтверждает завершение приостановки в течение времени ожидания TDR (обнаружение и восстановление времени ожидания), ОС обнаружит время ожидания подсистемы и выполнит сброс подсистемы.

Синтаксис

DXGKDDI_SUSPENDCONTEXT DxgkddiSuspendcontext;

NTSTATUS DxgkddiSuspendcontext(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_SUSPENDCONTEXT pSuspendContext
)
{...}

Параметры

hAdapter

[in] Аппаратный контекст, который необходимо вытеснять и помечать как приостановленный. Этот тип запроса на вытеснение не имеет льготного периода и, как ожидается, будет выполнен GPU как можно скорее.

pSuspendContext

[in] Указатель на структуру DXGKARG_SUSPENDCONTEXT , содержащую дополнительные аргументы для этой функции.

Возвращаемое значение

DxgkddiSuspendContext возвращает STATUS_SUCCESS, если контекст уже приостановлен во время этого вызова. В противном случае этому значению присваивается значение STATUS_PENDING, и операция приостановки будет завершена при сигнале contextSuspendFence через прерывание.

Комментарии

Зарегистрируйте реализацию этой функции обратного вызова, задав ее в DRIVER_INITIALIZATION_DATA.

Несмотря на то, что вытеснение с циклическим перебором может быть инициировано GPU, операционной системе по-прежнему нужен способ вытеснять контекст по другим причинам; например, если ему нужно переместить свои выделения или выполнить переход на питание GPU.

Значение приостановки контекста необходимо для обработки случаев, когда ОС приостанавливает контекст, не ожидает подтверждения приостановки, возобновляет и снова приостанавливает контекст. Значение приостановки позволит ОС различать предыдущее и последнее подтверждение приостановки.

После приостановки контекста предполагается, что все ссылки на него удаляются из GPU, и ОС может уничтожить контекст или переместить его память. В отличие от WDDM 2.3 или более ранних версий, в режиме планирования WDDM 2.4 отсутствует отдельная команда переключения контекста NULL (ранее обозначенная флагом ContextSwitch в DxgkDdiSuspendContext).

Требования

Требование Значение
Заголовок d3dkmddi.h

См. также раздел

DxgkddiResumeContext

DXGKARG_SUSPENDCONTEXT