다음을 통해 공유


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(가속 그래픽 포트) 인터페이스를 가져오려면 다음을 수행합니다.

  1. DXGK_AGP_INTERFACE 구조체를 할당합니다.

  2. Size 멤버를 sizeof(DXGK_AGP_INTERFACE)로 설정합니다.

  3. 버전 멤버를 설정합니다. 버전 상수는 Dispmprt.h (예: DXGK_AGP_INTERFACE_VERSION_1)에 정의됩니다.

  4. DxgkCbQueryServices를 호출합니다.ServicesType을DxgkServicesAgp로 설정하고 인터페이스DXGK_AGP_INTERFACE 구조체의 주소(PINTERFACE로 캐스팅)로 설정합니다.

  5. DxgkCbQueryServices에서 반환될 때 DXGK_AGP_INTERFACE 구조에는 AGP 인터페이스 함수에 대한 포인터가 포함됩니다. 예를 들어 AgpAllocatePool입니다.

디버그 보고서 인터페이스 가져오기

디버그 보고서 인터페이스를 가져오려면 다음을 수행합니다.

  1. DXGK_DEBUG_REPORT_INTERFACE 구조를 할당합니다.

  2. Size 멤버를 sizeof(DXGK_DEBUG_REPORT_INTERFACE)로 설정합니다.

  3. 버전 멤버를 설정합니다. 버전 상수는 Dispmprt.h (예: DXGK_DEBUG_REPORT_INTERFACE_VERSION_1)에 정의됩니다.

  4. DxgkCbQueryServices를 호출합니다.ServicesType을DxgkServicesDebugReport로 설정하고 인터페이스DXGK_DEBUG_REPORT_INTERFACE 구조체의 주소(PINTERFACE로 캐스팅)로 설정합니다.

  5. DxgkCbQueryServices에서 반환되면 DXGK_DEBUG_REPORT_INTERFACE 구조에 디버그 보고서 인터페이스 함수에 대한 포인터가 포함됩니다. 예를 들어 DbgReportCreate입니다.

시간 제한 작업 인터페이스 가져오기

시간 제한 작업 인터페이스를 가져오려면 다음을 수행합니다.

  1. DXGK_TIMED_OPERATION_INTERFACE 구조체를 할당합니다.

  2. Size 멤버를 sizeof(DXGK_TIMED_OPERATION_INTERFACE)로 설정합니다.

  3. 버전 멤버를 설정합니다. 버전 상수는 Dispmprt.h (예: DXGK_TIMED_OPERATION_INTERFACE_VERSION_1)에 정의됩니다.

  4. DxgkCbQueryServices를 호출합니다.ServicesType을DxgkServicesTimedOperation으로 설정하고 인터페이스DXGK_TIMED_OPERATION_INTERFACE 구조체의 주소(PINTERFACE로 캐스팅)로 설정합니다.

  5. DxgkCbQueryServices에서 돌아오면 DXGK_TIMED_OPERATION_INTERFACE 구조에 시간 제한 작업 인터페이스 함수에 대한 포인터가 포함됩니다. 예를 들어 TimedOperationStart입니다.

SPB 및 시스템 펌웨어 테이블 인터페이스 가져오기

SPB(Simple Peripheral Bus)시스템 펌웨어 테이블 인터페이스는 적절한 ServicesType 및 구조를 사용하여 위의 단계에 따라 유사하게 가져올 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
대상 플랫폼 데스크톱
머리글 dispmprt.h(Dispmprt.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

DXGK_AGP_INTERFACE

DxgkDdiStartDevice

DXGK_DEBUG_REPORT_INTERFACE

DXGK_FIRMWARE_TABLE_INTERFACE

DXGK_SERVICES

DXGK_SPB_INTERFACE

DXGK_TIMED_OPERATION_INTERFACE

DXGKRNL_INTERFACE

인터페이스