was ist der Unterschied zwischen pdo und fdo im windows-Geräte-Treiber?
Ich studiere windows-Gerätetreiber auf meine eigenen und ich finde es sehr schwer zu differenzieren zwischen PDO und FDO. Lassen Sie mich Ihnen sagen, die flow, die ich in meinem Kopf, korrigieren Sie mich, wenn ich falsch bin !!
wenn das system bootet, lädt es die root-bus-Treiber, erstellen Sie einen FDO. Jetzt wird es listet seine untergeordneten Geräte und ich vermute, dass einige hot-plug Methode der Busfahrer wird aufgerufen, wenn ein neues Kind gefunden wird, und dass die Methode teilt der PNP-manager. PNP-manager aufrufen, das Hinzugefügt werden () - routine den Stamm-bus-Treiber, und das wird intern erstellen PDOs für die neuen Busse, wie eine für PCI-und etc. Bitte erläutern Sie die ganze Strömung im detail, das ist nur meine Einbildung. Und dann ist es dokumentiert, dass ein system geladen werden, die die funktionalen Treiber für den PCI-bus zu schaffen, der die FDO ??
was ist das FDO?? und warum brauche ich das?? Nach mir PCI-bus-Treiber sollten auch die Folgen die gleichen wie bei der root-bus, aufzählen Ihrem Kind und erstellen von PDOs für Sie, oder die von dieser FDO Sie bedeuten PDO nur???? Ich bin so sehr verwirrt 🙁 !!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was werden Sie eigentlich machen, oder sind Sie nur versuchen, zu lernen? Ich Frage mich nur, wie Sie am Ende tief unten im Stapel.
PDO = Physical Device Object
FDO = Functional Device Object
Einem PDO wirkt wie ein physikalisches Gerät, aber es muss nicht unbedingt physisch sein. Es ist im wesentlichen die Schnittstelle zwischen einem Gerät auf dem bus, und der bus selbst. Das ist ziemlich gut abgedeckt, auf der MSDN-Website.
Hier ist ein Beispiel für die Verwendung von USB-sticks und das zeigt den Unterschied ganz gut.
Hier ist eine genauere Erklärung und das wichtige Zitat
Haben Sie auch filter-Treiber, die es erlauben, Sie sitzen zwischen PDO und FDO und starten tut freche Sachen wie verstecken von Dateien, POC rootkits etc. In diesem Stadium können Sie fügen Sie zusätzliche Funktionalität, oder ganz verhindern, dass der Zugriff auf die PDO.
Und hier ist alles in der MSDN-links.
http://msdn.microsoft.com/en-us/library/windows/hardware/hh439632(v=vs. 85).aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/ff554721(v=vs. 85).aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/hh439643(v=vs. 85).aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/ff554731(v=vs. 85).aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/ff564859(v=vs. 85).aspx
http://technet.microsoft.com/en-us/library/cc776371(v=ws.10).aspx
Wenn das nicht klar es für Sie ist, zögern Sie nicht, post zurück.
Hier ist ein Auszug aus dem Formular "Programming the Microsoft Windows Driver Model", 2. Auflage, Walter Ein:
Hoffe, das hilft Ihnen heraus.
According to me PCI bus driver should also follow the same as done by the root bus, enumerate its child and create PDOs for them
--WRONG!
.Wenn du redest über WDM -, PnP-Manager erstellt-PDOs. Früher, dass
YOU
hatte, um es zu schaffen(nach der Erkennung der Geräte)DriverEntry()
.