|
From: George on 16 May 2008 16:51 Hi All, This is my first post on this group and will gladly welcome any help on this matter. I am writing two KMDF PCI drivers. One is for a IDE controller and the other one is a PCI-ISA bridge device. Here is my observation after which I would like to ask my question. 1. After I have loaded the driver, in device manager, I see the "Disable" option for the IDE controller PCI driver whereas I do NOT see the "Disable" option for my PCI-ISA bridge PCI driver. My first question is to why I do not see it in the second case, because having that option helped me during developement as I can now dynamically load/unload the driver and test my startup code ( DriverEntry, EvtDeviceAdd) 2. After I do an "Update Driver " through Device Manager, for the IDE controller PCI driver, Windows does not ask me for a system restart but when I do an "Update Driver" for the PCI-ISA bridge driver, it always asks for a system restart. My second question, is as to how I can prevent from Windows asking for a system restart every time I update my driver. Now the interesting thing here is that for simplicity purposes, both the drivers as exactly the same in all aspects but for the fact that I changed the device ID's in the INF file so that the respective drivers are loaded. The only other difference that i can think of is that the "class code" inside the PCI configuration space is different for these two PCI devices. For the IDE controller, the class code indicates a "Mass Storage Controller" and for the other one, it shows it as a "Bridge Device". Is it possible that everytime I update the driver for the PCI-ISA bridge, Windows that this device is of type "Bridge Device" and hence asks me restart the system. I'll appreciate any help on this topic. Thanks, George
From: Maxim S. Shatskih on 17 May 2008 04:58 > I am writing two KMDF PCI drivers. One is for a IDE controller and the other KMDF does not support storage devices yet, for instance, it does not have guaranteed forward progress yet. For IDE controller driver, I would use SCSIPORT/STORPORT and represent the controller as SCSI one. Both storage ports play the same framework role as KMDF. > 1. After I have loaded the driver, in device manager, I see the "Disable" > option for the IDE controller PCI driver whereas I do NOT see the "Disable" > option for my PCI-ISA bridge PCI driver. Probably the PCI bridges are not stoppable at all, especially pre-Vista. > I do an "Update Driver" for the PCI-ISA bridge driver, it always asks for a > system restart. This is a logical consequence of 1. Reboot is usually wanted on driver update if the OS could not stop the existing driver. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation maxim(a)storagecraft.com http://www.storagecraft.com
From: George on 17 May 2008 08:36 Thanks for such a prompt reply. Is there a way, I can fool Windows into thinking that the PCI device in question is not a PCI-ISA bridge, so that I don't have to keep rebooting the system everytime I make a small change in my driver. The only way I know of making Windows think its not a PCI-ISA bridge is to change class code inside the PCI configuration register to represent some other device. Thanks, George "Maxim S. Shatskih" wrote: > > I am writing two KMDF PCI drivers. One is for a IDE controller and the other > > KMDF does not support storage devices yet, for instance, it does not have > guaranteed forward progress yet. > > For IDE controller driver, I would use SCSIPORT/STORPORT and represent the > controller as SCSI one. Both storage ports play the same framework role as > KMDF. > > > 1. After I have loaded the driver, in device manager, I see the "Disable" > > option for the IDE controller PCI driver whereas I do NOT see the "Disable" > > option for my PCI-ISA bridge PCI driver. > > Probably the PCI bridges are not stoppable at all, especially pre-Vista. > > > I do an "Update Driver" for the PCI-ISA bridge driver, it always asks for a > > system restart. > > This is a logical consequence of 1. Reboot is usually wanted on driver update > if the OS could not stop the existing driver. > > -- > Maxim Shatskih, Windows DDK MVP > StorageCraft Corporation > maxim(a)storagecraft.com > http://www.storagecraft.com > >
From: Don Burn on 17 May 2008 08:44 "George" <George(a)discussions.microsoft.com> wrote in message news:09E29FBE-BF21-4796-99C2-EC03D40CA0B1(a)microsoft.com... > Thanks for such a prompt reply. > > Is there a way, I can fool Windows into thinking that the PCI device in > question is not a PCI-ISA bridge, so that I don't have to keep rebooting > the > system everytime I make a small change in my driver. > > The only way I know of making Windows think its not a PCI-ISA bridge is to > change class code inside the PCI configuration register to represent some > other device. > It is not the fact that it is a bridge it is the fact that by definition a bridge has related devices. Since there are drivers depending on the bridge driver this is causing the reboot requirement. The only way to replace the driver without the reboot is to shutdown all the references to the driver. -- Don Burn (MVP, Windows DDK) Windows 2k/XP/2k3 Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr Remove StopSpam to reply
From: Kalle Olavi Niemitalo on 17 May 2008 11:45 "Maxim S. Shatskih" <maxim(a)storagecraft.com> writes: > KMDF does not support storage devices yet, for instance, it > does not have guaranteed forward progress yet. In Windows, is guaranteed forward progress more important for storage drivers than for other drivers? Why is that?
|
Next
|
Last
Pages: 1 2 Prev: Incorrect parameter errror Next: newbie virtual miniport storport question |