我正在尝试修改Windows内核级磁盘驱动程序以正确响应更新的控制代码.例如,它只有一个废弃的IOCTL_DISK_GET_DRIVE_GEOMETRY
控制代码的处理程序,但没有更新的IOCTL_DISK_GET_DRIVE_GEOMETRY_EX
控制代码,所以我添加了.
当然,我更新了驱动程序以使用所有新的Windows结构和功能,如IoReadPartitionTableEx()
功能和DRIVE_LAYOUT_INFORMATION_EX
结构(我正在尝试向驱动程序添加GPT支持).问题是,当我使用磁盘驱动程序时,我可以看到(使用DebugView)Windows(我认为它是Windows ......也许是其他东西......)仍在向IOCTL_DISK_GET_DRIVE_GEOMETRY
我的驱动程序发送旧的控制代码.我希望Windows将更新的控制代码发送给我的驱动程序.甚至是Windows发送这些控制代码?Windows和驱动程序之间是否还有其他一些我还没知道的层?
驱动程序是否应该以某种方式识别Windows的"类型",以便Windows确切地知道如何"对话"?Windows如何确切地知道要发送给特定驱动程序的控制代码?我已经用Google搜索了这些(看似非常基本的)问题的答案,并且没有找到一个明确的答案,这让我相信我从根本上误解了一些关于Windows驱动程序的问题.我的问题是否有意义?