функция обратного вызова PDD_GETDRIVERINFO (ddrawint.h)

Функция DdGetDriverInfo запрашивает у драйвера дополнительные функции DirectDraw и Direct3D, поддерживаемые драйвером.

Синтаксис

PDD_GETDRIVERINFO PddGetdriverinfo;

DWORD PddGetdriverinfo(
  PDD_GETDRIVERINFODATA unnamedParam1
)
{...}

Параметры

unnamedParam1

Указывает на структуру DD_GETDRIVERINFODATA , содержащую сведения, необходимые для выполнения запроса.

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

DdGetDriverInfo должен возвращать DDHAL_DRIVER_HANDLED.

Комментарии

Драйверы должны реализовать DdGetDriverInfo , чтобы предоставить поддерживаемые драйвером функции DirectDraw, которые не возвращаются через DrvEnableDirectDraw.

Функция DrvGetDirectDrawInfo драйвера возвращает указатель на DdGetDriverInfo в элементе GetDriverInfoструктуры DD_HALINFO .

Чтобы сообщить DirectDraw о том, что член GetDriverInfo задан правильно, драйвер также должен задать DDHALINFO_GETDRIVERINFOSET бит элемента dwFlags в структуре DD_HALINFO.

DdGetDriverInfo должен определить, поддерживает ли драйвер и его оборудование обратные вызовы или возможности, запрашиваемые указанным GUID. Для всех идентификаторов GUID, кроме GUID_D3DParseUnknownCommandCallback, если драйвер предоставляет запрошенную поддержку, он должен задать следующие элементы структуры DD_GETDRIVERINFODATA :

  • Задайте dwActualSize размер в байтах обратного вызова или структуры возможностей, возвращаемой драйвером.
  • В памяти, на которую указывает lpvData , инициализируйте элементы обратного вызова или структуры возможностей, которые соответствуют запрошенной функции следующим образом:
    • Задайте члену dwSize размер структуры в байтах.
    • Для обратных вызовов задайте указатели функций, указывающие на эти обратные вызовы, реализованные драйвером, и задайте биты в члене dwFlags , чтобы указать, какие функции поддерживает драйвер.
    • Для возможностей задайте соответствующие элементы структуры возможностей со значениями, поддерживаемыми драйвером или устройством.
  • Возврат DD_OK в ddRVal.
Если драйвер не поддерживает эту функцию, он должен задать для ddRVal значение DDERR_CURRENTLYNOTAVAIL и возврат.

DirectDraw сообщает драйверу об ожидаемом объеме данных в элементе dwExpectedSizeструктуры DD_GETDRIVERINFODATA . Драйвер не должен заполнять больше данных, чем dwExpectedSize байтов.

Чтобы избежать проблем с использованием DdGetDriverInfo:

  • Не реализуйте зависимости в порядке вызова DdGetDriverInfo . Например, избегайте подключения к шагам инициализации драйвера в DdGetDriverInfo.
  • Не пытайтесь определить версию DirectDraw на основе вызовов DdGetDriverInfo.
  • Не предполагайте, кратно ли DirectDraw будет вызывать драйвер, или количество запросов DirectDraw к заданному ИДЕНТИФИКАТОРу GUID. Возможно, DirectDraw будет повторно проверять драйвер с тем же идентификатором GUID. Реализация предположений об этом в драйвере препятствует его совместимости с будущими средами выполнения.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть ddrawint.h (включая Winddi.h)

См. также раздел

DD_GETDRIVERINFODATA

DrvEnableDirectDraw

DrvGetDirectDrawInfo