DXGKCB_QUERY_SERVICES 콜백 함수(dispmprt.h)
DxgkCbQueryServices 함수는 표시 포트 드라이버에 의해 구현된 인터페이스를 반환합니다.
구문
DXGKCB_QUERY_SERVICES DxgkcbQueryServices;
NTSTATUS DxgkcbQueryServices(
[in] HANDLE DeviceHandle,
[in] DXGK_SERVICES ServicesType,
[in, out] PINTERFACE Interface
)
{...}
매개 변수
[in] DeviceHandle
디스플레이 어댑터를 나타내는 핸들입니다. 디스플레이 미니포트 드라이버는 이전에 DxgkDdiStartDevice에 전달된 DXGKRNL_INTERFACE 구조체의 DeviceHandle 멤버에서 이 핸들을 얻었습니다.
[in] ServicesType
요청되는 인터페이스를 지정하는 DXGK_SERVICES 열거형의 상수입니다.
[in, out] Interface
요청된 인터페이스를 수신하는 INTERFACE 구조체에 대한 포인터입니다.
반환 값
DxgkCbQueryServices는 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ntstatus.h에 정의된 오류 코드 중 하나를 반환합니다.
설명
이 컨텍스트에서 인터페이스는 디스플레이 포트 드라이버에서 구현하는 함수 집합입니다. 디스플레이 포트 드라이버는 DxgkCbQueryServices에 대한 응답으로 함수 포인터를 제공하여 인터페이스의 함수를 다른 드라이버에서 사용할 수 있도록 합니다.
AGP 인터페이스 가져오기
AGP(가속 그래픽 포트) 인터페이스를 가져오려면 다음을 수행합니다.
DXGK_AGP_INTERFACE 구조체를 할당합니다.
Size 멤버를 sizeof(DXGK_AGP_INTERFACE)로 설정합니다.
버전 멤버를 설정합니다. 버전 상수는 Dispmprt.h (예: DXGK_AGP_INTERFACE_VERSION_1)에 정의됩니다.
DxgkCbQueryServices를 호출합니다.ServicesType을DxgkServicesAgp로 설정하고 인터페이스를 DXGK_AGP_INTERFACE 구조체의 주소(PINTERFACE로 캐스팅)로 설정합니다.
DxgkCbQueryServices에서 반환될 때 DXGK_AGP_INTERFACE 구조에는 AGP 인터페이스 함수에 대한 포인터가 포함됩니다. 예를 들어 AgpAllocatePool입니다.
디버그 보고서 인터페이스 가져오기
디버그 보고서 인터페이스를 가져오려면 다음을 수행합니다.
DXGK_DEBUG_REPORT_INTERFACE 구조를 할당합니다.
Size 멤버를 sizeof(DXGK_DEBUG_REPORT_INTERFACE)로 설정합니다.
버전 멤버를 설정합니다. 버전 상수는 Dispmprt.h (예: DXGK_DEBUG_REPORT_INTERFACE_VERSION_1)에 정의됩니다.
DxgkCbQueryServices를 호출합니다.ServicesType을DxgkServicesDebugReport로 설정하고 인터페이스를 DXGK_DEBUG_REPORT_INTERFACE 구조체의 주소(PINTERFACE로 캐스팅)로 설정합니다.
DxgkCbQueryServices에서 반환되면 DXGK_DEBUG_REPORT_INTERFACE 구조에 디버그 보고서 인터페이스 함수에 대한 포인터가 포함됩니다. 예를 들어 DbgReportCreate입니다.
시간 제한 작업 인터페이스 가져오기
시간 제한 작업 인터페이스를 가져오려면 다음을 수행합니다.
DXGK_TIMED_OPERATION_INTERFACE 구조체를 할당합니다.
Size 멤버를 sizeof(DXGK_TIMED_OPERATION_INTERFACE)로 설정합니다.
버전 멤버를 설정합니다. 버전 상수는 Dispmprt.h (예: DXGK_TIMED_OPERATION_INTERFACE_VERSION_1)에 정의됩니다.
DxgkCbQueryServices를 호출합니다.ServicesType을DxgkServicesTimedOperation으로 설정하고 인터페이스를 DXGK_TIMED_OPERATION_INTERFACE 구조체의 주소(PINTERFACE로 캐스팅)로 설정합니다.
DxgkCbQueryServices에서 돌아오면 DXGK_TIMED_OPERATION_INTERFACE 구조에 시간 제한 작업 인터페이스 함수에 대한 포인터가 포함됩니다. 예를 들어 TimedOperationStart입니다.
SPB 및 시스템 펌웨어 테이블 인터페이스 가져오기
SPB(Simple Peripheral Bus) 및 시스템 펌웨어 테이블 인터페이스는 적절한 ServicesType 및 구조를 사용하여 위의 단계에 따라 유사하게 가져올 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
대상 플랫폼 | 데스크톱 |
머리글 | dispmprt.h(Dispmprt.h 포함) |
IRQL | PASSIVE_LEVEL |