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


функция обратного вызова 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 или более ранней версии, в dxgkDdiSubmitCommandVirtualв режиме планирования WDDM 2.4 отсутствует отдельная команда переключателя контекста NULL (ранее указана флагом ContextS witch в DxgkddiSubmitCommandVirtual) в режиме планирования WDDM 2.4, так как DxgkddiSuspendContext должна выполнять эту работу.

Требования

Требование Ценность
заголовка d3dkmddi.h

См. также

DxgkddiResumeContext

DXGKARG_SUSPENDCONTEXT