Freigeben über


Übersicht über die Architektur

Die WPD-Architektur kann in drei Prozesse unterteilt werden. Innerhalb dieser Prozesse befinden sich die drei Hauptkomponenten von WPD: die API, das Serialisierungsprogramm und der Treiber. Die folgende Abbildung zeigt diese Prozesse und Komponenten, die die WPD-Architektur bilden.

die drei Prozesse, die wpd bilden.

Die WPD-Anwendungsprogrammierschnittstelle

Die WPD-API wird als com-in-proc-Server implementiert. Die API verwendet Standardmäßige Microsoft Win32-APIs für die Kommunikation mit dem entsprechenden WPD-Treiber. Eine Komponente namens WPD-Serialisierung wird sowohl von API-Objekten als auch vom Treiber verwendet, um Parameter in oder aus WDF-Puffern (Windows Driver Frameworks)-User-Mode Driver Framework (UMDF) zu packen oder zu entpacken.

Das WPD-Serialisierungsprogramm

Das WPD-Serialisierungsprogramm wird auch als com-in-proc-Server implementiert. Die WPD-API verwendet das Serialisierungsprogramm, um Befehle und Parameter in Nachrichtenpuffer zu packen, die an den Treiber gesendet werden. Der Treiber verwendet das Serialisierungsprogramm, um diese Nachrichtenpuffer zur Verarbeitung zu entpacken. Der Treiber verwendet auch das Serialisierungsprogramm, um Daten und Parameter in Antwortpuffer zu packen, die an die WPD-API zurückgegeben werden, und die WPD-API verwendet das Serialisierungsprogramm, um diese Antwortpuffer zu entpacken, um die Ergebnisse an Aufrufer zurückzugeben.

WPD-Treiber

Der WPD-Treiber wird als Standardtreiber für Windows Driver Frameworks (WDF)-User-Mode Driver Framework (UMDF) implementiert. WPD-Treiber werden von WUDF in einem separaten Prozess gehostet, der als Treiberhost bezeichnet wird.

Der Treiber empfängt Nachrichten vom WUDF-Reflektor (dies ist im Diagramm nicht dargestellt, da der Empfang der Puffer für den Treiber nicht wichtig ist. Weitere Informationen finden Sie in der WUDF-Dokumentation. Der Treiber implementiert einen WPD-spezifischen IOCTL-Handler zum Verarbeiten von WPD-Nachrichten, die von der WPD-API empfangen werden. Der Treiber verwendet das WPD-Serialisierungsprogramm, um Befehle und Parameter aus diesen Nachrichtenpuffern zu entpacken und die Antwort in den Puffer zu packen.

WPD-Treiber können mit ihren Geräten kommunizieren, indem sie einen Kernelmodustreiber durchlaufen, auf den normalerweise über Win32-Dateivorgänge zugegriffen wird (z. B. CreateFile, ReadFile, WriteFile usw.). Für die gängigen Busse stellt Microsoft Standard-Kerneltreiber für Anbieter bereit, die es Anbietern ermöglichen, eine Treiberlösung für den reinen Benutzermodus zu liefern.