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


функция обратного вызова 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

Дескриптор, представляющий адаптер отображения. Ранее этот дескриптор отображался в элементе DeviceHandle структуры DXGKRNL_INTERFACE, переданной в DxgkDdiStartDevice.

[in] ServicesType

Константой из перечисления DXGK_SERVICES, указывающей, какой интерфейс запрашивается.

[in, out] Interface

Указатель на структуру интерфейса , которая получает запрошенный интерфейс.

Возвращаемое значение

DxgkCbQueryServices возвращает STATUS_SUCCESS в случае успешного выполнения. В противном случае возвращается один из кодов ошибок, определенных в Ntstatus.h.

Замечания

Интерфейс в этом контексте представляет собой набор функций, реализованных драйвером порта отображения. Драйвер порта отображения делает функции интерфейса доступными для других драйверов, предоставляя указатели функций в ответ на DxgkCbQueryServices.

Получение интерфейса AGP

Чтобы получить интерфейс ускорения графического порта (AGP), сделайте следующее:

  1. Выделите структуру DXGK_AGP_INTERFACE.

  2. Задайте для элемента размер значение sizeof(DXGK_AGP_INTERFACE).

  3. Задайте элемент версии. Константы версий определены в Dispmprt.h (например, DXGK_AGP_INTERFACE_VERSION_1).

  4. Вызов DxgkCbQueryServices; задайте ServicesType значение DxgkServicesAgpи задайте интерфейс (приведение как PINTERFACE) структуры DXGK_AGP_INTERFACE.

  5. При возврате из DxgkCbQueryServicesструктура DXGK_AGP_INTERFACE будет содержать указатели на функции интерфейса AGP; например, AgpAllocatePool.

Получение интерфейса отчета отладки

Чтобы получить интерфейс отчета отладки, сделайте следующее:

  1. Выделите структуру DXGK_DEBUG_REPORT_INTERFACE.

  2. Задайте для элемента размер значение sizeof(DXGK_DEBUG_REPORT_INTERFACE).

  3. Задайте элемент версии. Константы версий определяются в Dispmprt.h (например, DXGK_DEBUG_REPORT_INTERFACE_VERSION_1).

  4. Вызов DxgkCbQueryServices; задайте ServicesType значение DxgkServicesDebugReportи задайте интерфейса адрес (приведение как PINTERFACE) структуры DXGK_DEBUG_REPORT_INTERFACE.

  5. При возврате из DxgkCbQueryServicesструктура DXGK_DEBUG_REPORT_INTERFACE будет содержать указатели на функции интерфейса отчета отладки; например, DbgReportCreate.

Получение интерфейса операции timed

Чтобы получить интерфейс операций timed, выполните следующие действия.

  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и задайте интерфейса в адрес (приведение как PINTERFACE) структуры DXGK_TIMED_OPERATION_INTERFACE.

  5. При возврате из DxgkCbQueryServicesструктура DXGK_TIMED_OPERATION_INTERFACE будет содержать указатели на функции интерфейса операций timed; например, TimedOperationStart.

Получение интерфейсов таблиц SPB и системного встроенного ПО

Интерфейсы простой периферийной шины (SPB) и системной таблицы встроенного ПО можно получить аналогичным образом, выполнив описанные выше действия, используя соответствующие ServicesType и структуру.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
целевая платформа Настольный
заголовка dispmprt.h (include 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

ИНТЕРФЕЙСА