我有一个在Storport-miniport模型中设计的驱动程序。我正在尝试修改驱动程序以支持SATA传统模式。以下是我正在寻求帮助的一些问题:
I / O地址
在Native模式下,IO地址显示在BAR0到BAR3中。但在传统模式下,IO地址是固定的(对于命令为0x1f0,对于通道-0中的控制为0x3f6)。在本机模式下,我们使用StorPortGetDeviceBase来获取IO地址的内存映射,但它不能用于传统模式,因为Storport只能处理PCI空间中公布的IO空间。因此,我尝试使用MmMapIoSpace来分配内存。这是正确的方法吗?
IRQ
就像IO地址一样,IRQ可以修复传统模式。但关于IRQ的全部内容都是由Storport完成的,我或者我可以在这里做什么吗?
HwStorInitialize未调用
MSDN说如果HwStorFindAdapter返回true,则应该调用HwStorInitialize。但是在我的带有传统模式的驱动程序中,HwStorInitialize没有调用,因此设备管理器中的适配器显示未准备好黄色标记。我错过了什么吗?
ATAport-minoport
当我试图弄清楚那些问题时,我发现还有另一种名为ATAport-miniport的驱动模式。这是否意味着如果我的适配器处于传统模式,我应该在模型中设计我的驱动程序?是否可以通过Storport-miniport在与本机模式相同的驱动程序中实现传统模式?