Ü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, der Serialisierer und der Treiber. Die folgende Abbildung zeigt die Prozesse und Komponenten, die die WPD-Architektur bilden.
Die WPD-Anwendungsprogrammierschnittstelle
Die WPD-API wird als in-proc COM-Server implementiert. Die API verwendet Standardmäßige Microsoft Win32-APIs, um mit dem entsprechenden WPD-Treiber zu kommunizieren. Eine Komponente namens WPD-Serialisierung wird sowohl von API-Objekten als auch vom Treiber zum Packen oder Entpacken von Parametern in oder aus WDF-Puffern (Windows Driver Foundation)-User-Mode Driver Framework (UMDF) verwendet.
Der WPD-Serialisierer
Der WPD-Serialisierer wird als in-proc COM-Server implementiert. Die WPD-API verwendet den Serialisierer, um Befehle und Parameter in Nachrichtenpuffer zu packen, die an den Treiber gesendet werden. Der Treiber verwendet das Serialisierungsprogramm, um diese Nachrichtenpuffer für die Verarbeitung zu entpacken. Der Treiber verwendet auch den Serialisierer, um Daten und Parameter in Antwortpuffer zu packen, die an die WPD-API zurückgegeben werden, und die WPD-API verwendet den Serialisierer, um diese Antwortpuffer zu entpacken, um an Aufrufer zurückzukehren.
WPD-Treiber
Der WPD-Treiber wird als Standardmäßiger WDF-Treiber (Windows Driver Foundation)-User-Mode Driver Framework (UMDF) implementiert. WPD-Treiber werden von UMDF in einem separaten Prozess namens Driver Host gehostet.
Der Treiber empfängt Nachrichten vom UMDF-Reflektor (dies wird im Diagramm nicht dargestellt, da der Empfang der Puffer für den Treiber nicht wichtig ist. Weitere Informationen finden Sie in der UMDF-Dokumentation). Der Treiber implementiert einen WPD-spezifischen I/O Control-Codehandler (IOCL) zum Verarbeiten von WPD-Nachrichten, die von der WPD-API empfangen werden. Der Treiber verwendet den WPD-Serialisierer, um Befehle und Parameter aus diesen Nachrichtenpuffern zu entpacken und die Antwort in den Rückgabepuffer zu packen.
WPD-Treiber können mit ihren Geräten kommunizieren, indem sie einen Kernelmodustreiber verwenden, auf den normalerweise über Win32-Dateivorgänge zugegriffen wird (d. a. CreateFile, ReadFile, WriteFile usw.). Für die gängigen Busse stellt Microsoft Standard-Kerneltreiber für Anbieter zur Verfügung, die es Anbietern ermöglichen, eine reine Benutzermodustreiberlösung zu liefern. Darüber hinaus stellt Microsoft für MTP-Geräte (Media Transfer Protocol) und Massenspeicherklasse (MSC) WPD-Klassentreiber bereit.
Weitere Informationen zu WPD-Treibern finden Sie in der Dokumentation zu Treibern für tragbare Windows-Geräte im Windows Driver Kit.
Zugehörige Themen