miniport驱动如何触发dxgkernel调用QueryAdapterInfo?
时间: 2024-04-01 08:32:13 浏览: 19
miniport驱动可以通过调用DXGKDDI_QUERYADAPTERINFO回调函数来触发dxgkernel调用QueryAdapterInfo。在驱动程序的DXGKDDI_INTERFACE结构中,需要填写DXGKDDI_QUERYADAPTERINFO成员指针,以便dxgkernel在需要查询适配器信息时调用该函数。当dxgkernel需要查询适配器信息时,会调用miniport驱动中的DXGKDDI_QUERYADAPTERINFO回调函数,并将一个指向DXGK_QUERYADAPTERINFO结构的指针作为参数传递给该函数。在该函数中,驱动程序可以填充DXGK_QUERYADAPTERINFO结构体中的各个字段,以提供适配器的相关信息。
相关问题
windows WDDM驱动中,dxgkernel和miniport驱动之间的接口有哪些?
在Windows WDDM驱动中,dxgkernel和miniport驱动之间的接口有以下几种:
1. DxgkDdiAddDevice:用于通知miniport驱动有新设备添加到系统中。
2. DxgkDdiCreateDevice:用于创建一个新的设备对象。
3. DxgkDdiDestroyDevice:用于销毁一个设备对象。
4. DxgkDdiDpcRoutine:用于处理Deferred Procedure Call (DPC)。
5. DxgkDdiInterruptRoutine:用于处理中断请求。
6. DxgkDdiResetDevice:用于重置设备。
7. DxgkDdiSetPowerState:用于设置设备的电源状态。
8. DxgkDdiControlInterrupts:用于控制中断处理程序。
9. DxgkDdiQueryAdapterInfo:用于查询适配器信息。
10. DxgkDdiQueryAdapterStatus:用于查询适配器状态。
11. DxgkDdiQueryDeviceDescriptor:用于查询设备描述符。
12. DxgkDdiQueryVidPnTopology:用于查询显示拓扑信息。
13. DxgkDdiQueryVidPnSources:用于查询所有源模式。
14. DxgkDdiQueryVidPnTargetModes:用于查询所有目标模式。
15. DxgkDdiRecommendFunctionalVidPn:用于推荐一个功能性的视频路径。
16. DxgkDdiEnumVidPnCofuncModality:用于枚举视频路径的协同模态。
17. DxgkDdiSetVidPnSourceVisibility:用于设置源模式的可见性。
这些接口可以让dxgkernel和miniport驱动之间进行通信和数据交换,从而实现对显示设备的控制和管理。
miniport驱动如何将显示器的EDID信息注入系统?
Miniport驱动可以通过以下步骤将显示器的EDID信息注入到系统中:
1. 在驱动代码中定义一个EDID结构体,用于存储显示器的EDID信息。
2. 在Miniport驱动的AddDevice函数中,调用IoGetDeviceProperty函数获取显示器设备对象的DEVPKEY_Device_EPD信息,并将其保存到EDID结构体中。
3. 在Miniport驱动的QueryAdapterInfo函数中,将EDID结构体中的信息填充到DXGK_DISPLAYDESCRIPTOR结构体中,并将其返回给dxgkernel。
4. 在dxgkernel中,将DXGK_DISPLAYDESCRIPTOR结构体中的信息用于初始化显示器的相关设置,例如分辨率、刷新率、色彩空间等。
通过以上步骤,Miniport驱动可以将显示器的EDID信息注入到系统中,从而实现对显示器的正确识别和配置。需要注意的是,如果显示器的EDID信息发生变化,例如更换了显示器或者更新了显示器固件,Miniport驱动需要重新获取并注入EDID信息。