функция обратного вызова 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.
DirectDraw сообщает драйверу об ожидаемом объеме данных в элементе dwExpectedSizeструктуры DD_GETDRIVERINFODATA . Драйвер не должен заполнять больше данных, чем dwExpectedSize байтов.
Чтобы избежать проблем с использованием DdGetDriverInfo:
- Не реализуйте зависимости в порядке вызова DdGetDriverInfo . Например, избегайте подключения к шагам инициализации драйвера в DdGetDriverInfo.
- Не пытайтесь определить версию DirectDraw на основе вызовов DdGetDriverInfo.
- Не предполагайте, кратно ли DirectDraw будет вызывать драйвер, или количество запросов DirectDraw к заданному ИДЕНТИФИКАТОРу GUID. Возможно, DirectDraw будет повторно проверять драйвер с тем же идентификатором GUID. Реализация предположений об этом в драйвере препятствует его совместимости с будущими средами выполнения.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | ddrawint.h (включая Winddi.h) |