初始化与 Direct3D 用户模式显示驱动程序之间的通信
若要初始化与 Microsoft Direct3D 用户模式显示驱动程序 DLL 版本 11 DDI 的通信,Direct3D 运行时首先加载 DLL。 接下来,Direct3D 运行时通过 DLL 的导出表调用用户模式显示驱动程序的 OpenAdapter 函数,以打开图形适配器的实例。 OpenAdapter 函数是 DLL 的唯一导出函数。
在调用驱动程序的 OpenAdapter 函数时,运行时在 D3DDDIARG_OPENADAPTER 结构的 pAdapterCallbacks 成员中提供 pfnQueryAdapterInfoCb 适配器回调函数。 运行时还在 D3DDDIARG_OPENADAPTER 的 Interface 和 Version 成员中提供其版本。 用户模式显示驱动程序必须验证它是否可以使用此版本的运行时。 用户模式显示驱动程序在 D3DDDIARG_OPENADAPTER 的 pAdapterFuncs 成员中返回其适配器特定函数的表。
用户模式显示驱动程序应调用 pfnQueryAdapterInfoCb 适配器回调函数,以从显示微型端口驱动程序查询图形硬件功能。
运行时调用用户模式显示驱动程序的 CreateDevice 函数 (驱动程序的适配器特定函数之一,) 创建用于处理呈现状态集合和完成初始化的显示设备。 初始化完成后,Direct3D 运行时可以调用 显示驱动程序提供的函数,用户模式显示驱动程序可以调用 运行时提供的函数。
使用D3DDDIARG_CREATEDEVICE结构调用用户模式显示驱动程序的 CreateDevice 函数,其成员按以下方式设置,以初始化用户模式显示驱动程序接口:
运行时将 Interface 设置为运行时从用户模式显示驱动程序所需的接口版本。
运行时将 Version 设置为驱动程序可用于标识生成运行时时间的数字。 例如,驱动程序可以使用版本号来区分 Windows Vista 发布的运行时和随后续 Service Pack 发布的运行时,后者可能包含驱动程序所需的修补程序。
运行时设置 hDevice 以指定驱动程序调用回运行时时驱动程序应使用的句柄。 驱动程序生成唯一句柄,并将其传递回 hDevice 中的运行时。 运行时应在后续驱动程序调用中使用返回的 hDevice 句柄。
运行时在 pCallbacks 指向的 D3DDDI_DEVICECALLBACKS 结构中提供其特定于设备的回调函数的表。 用户模式显示驱动程序调用运行时提供的回调函数来访问显示微型端口驱动程序中的内核模式服务。
用户模式显示驱动程序在 pDeviceFuncs 指向的D3DDDI_DEVICEFUNCS结构中返回其特定于设备的功能的表。
注意
可同时存在的 (图形上下文) 显示设备的数量仅受可用系统内存的限制。