DXGKDDI_PREEMPTCOMMAND 콜백 함수(d3dkmddi.h)
DxgkDdiPreemptCommand 함수는 이전에 제출되어 하드웨어 명령 실행 단위에 현재 큐에 대기된 DMA(직접 메모리 액세스) 버퍼를 선점합니다.
구문
DXGKDDI_PREEMPTCOMMAND DxgkddiPreemptcommand;
NTSTATUS DxgkddiPreemptcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PREEMPTCOMMAND pPreemptCommand
)
{...}
매개 변수
[in] hAdapter
디스플레이 어댑터와 연결된 컨텍스트 블록에 대한 핸들입니다. 디스플레이 미니포트 드라이버는 이전에 DxgkDdiAddDevice 함수의 MiniportDeviceContext 출력 매개 변수에서 Microsoft DirectX 그래픽 커널 하위 시스템에 이 핸들을 제공했습니다.
[in] pPreemptCommand
이전에 하드웨어 명령 실행 단위에 제출된 DMA 버퍼를 선점하는 데 사용되는 명령을 설명하는 DXGKARG_PREEMPTCOMMAND 구조체에 대한 포인터입니다.
반환 값
성공적으로 완료되면 STATUS_SUCCESS 반환합니다. 드라이버가 대신 오류 코드를 반환하는 경우 운영 체제에서 시스템 버그 확인이 발생합니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
설명
드라이버가 하드웨어가 제출된 모든 DMA 버퍼 처리를 이미 완료했다고 판단하고 하드웨어가 DMA 버퍼를 선점하기 위해 DxgkDdiPreemptCommand 함수를 호출할 때 GPU(그래픽 처리 장치) 스케줄러에 완료에 대해 알린 경우 드라이버는 DXGKARG_PREEMPTCOMMAND PreemptionFenceId 멤버로 식별되는 선점 펜스를 하드웨어에 제출하는 대신 다음 작업을 수행해야 합니다.
- IRQL을 발생하여 인터럽트 수준 예를 들어 드라이버는 DxgkCbSynchronizeExecution 함수를 호출하여 DxgkDdiInterruptRoutine 함수와 동기화할 수 있습니다.
-
선점 정보를 GPU 스케줄러에 알릴 수 있습니다. 드라이버는 DxgkCbNotifyInterrupt 함수를 직접 호출하거나 DxgkDdiInterruptRoutine 함수를 호출할 수 있습니다(예: 드라이버가 다른 업데이트를 수행해야 하는 경우).
GPU 스케줄러는 TDR(시간 제한 검색 및 복구) 작업으로 인해 하드웨어의 응답이 중지된 인스턴스를 처리합니다.
다음 네 개의 매개 변수가 있는
- 0x2
- 실패한 드라이버 호출에서 반환된 NTSTATUS 오류 코드
- DXGKARG_PREEMPTCOMMAND 구조체에 대한 포인터
- 내부 스케줄러 데이터 구조에 대한 포인터
요구 사항
| 지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
| 대상 플랫폼 | 데스크톱 |
| 헤더 | d3dkmddi.h |
| IRQL | DISPATCH_LEVEL |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기