다음을 통해 공유


DXGKDDI_SUSPENDCONTEXT 콜백 함수(d3dkmddi.h)

DxgkddiSuspendContext 는 GPU에 컨텍스트를 일시 중단하도록 지시합니다. GPU가 TDR(시간 제한 검색 및 복구) 시간 제한 내에서 일시 중단 완료를 승인하지 않으면 OS는 엔진 시간 제한을 검색하고 엔진 재설정을 수행합니다.

구문

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에서 라운드 로빈 선점 작업을 시작할 수 있지만 OS는 다른 이유로 컨텍스트를 선점하는 방법이 여전히 필요합니다. 예를 들어 할당을 이동하거나 GPU 전원 전환을 수행해야 하는 경우입니다.

컨텍스트 일시 중단 값은 OS가 컨텍스트를 일시 중단하고, 일시 중단 승인을 기다리지 않고, 컨텍스트를 다시 시작하고, 일시 중단하는 경우를 처리하는 데 필요합니다. 일시 중단 값을 사용하면 OS가 이전 일시 중단 승인과 최신 승인을 구분할 수 있습니다.

컨텍스트가 일시 중단되면 해당 컨텍스트에 대한 모든 참조가 GPU에서 사라진 것으로 간주되며 OS는 컨텍스트를 삭제하거나 메모리를 이동할 수 있습니다. WDDM 2.3 이하와 달리 DxgkddiSuspendContext가 이 작업을 수행해야 하므로 WDDM 2.4 예약 모드에는 별도의 NULL 컨텍스트 전환 명령(이전에 DxgkDdiSubmitCommandVirtualContextSwitch 플래그로 표시됨)이 없습니다.

요구 사항

요구 사항
헤더 d3dkmddi.h

추가 정보

DxgkddiResumeContext

DXGKARG_SUSPENDCONTEXT