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 函数在 DD_HALINFO 结构的 GetDriverInfo 成员中返回指向 DdGetDriverInfo 的指针。
若要通知 DirectDraw GetDriverInfo 成员已正确设置,驱动程序还必须在 DD_HALINFO 结构中设置 dwFlags 成员的 DDHALINFO_GETDRIVERINFOSET 位。
DdGetDriverInfo 应确定驱动程序及其硬件是否支持指定 GUID 请求的回调或功能。 对于除 GUID_D3DParseUnknownCommandCallback 之外的所有 GUID,如果驱动程序确实提供请求的支持,则应设置 DD_GETDRIVERINFODATA 结构的以下成员:
- 将 dwActualSize 设置为驱动程序返回的回调或功能结构的大小(以字节为单位)。
- 在 lpvData 指向的内存中,初始化与请求的功能对应的回调或功能结构的成员,如下所示:
- 将 dwSize 成员设置为 结构的大小(以字节为单位)。
- 对于回调,将函数指针设置为指向驱动程序实现的那些回调,并在 dwFlags 成员中设置位以指示驱动程序支持哪些函数。
- 对于功能,请使用驱动程序/设备支持的值设置功能结构的相应成员。
- 返回 ddRVal 中的DD_OK。
DirectDraw 通知驱动程序DD_GETDRIVERINFODATA结构的dwExpectedSize 成员的预期数据量。 驱动程序填充的数据不得超过 dwExpectedSize 字节数。
若要避免使用 DdGetDriverInfo 时出现问题,请:
- 不要根据 调用 DdGetDriverInfo 的顺序实现依赖项。 例如,避免将驱动程序初始化步骤挂钩到 DdGetDriverInfo 中。
- 不要尝试根据对 DdGetDriverInfo 的调用来确定 DirectDraw 版本。
- 不要假设 DirectDraw 调用驱动程序的次数或 DirectDraw 查询给定 GUID 的次数。 DirectDraw 可能会使用相同的 GUID 重复探测驱动程序。 在驱动程序中实现有关此的假设会妨碍其与未来运行时的兼容性。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | ddrawint.h (包括 Winddi.h) |