Freigeben über


Informationen zu Speichertreibern und Geräteobjekten

Der Speichergerätestapel besteht aus einer Struktur von Geräteobjekten, die von den Treibern erstellt werden, die an der Verarbeitung von E/A für Speichergeräte im System beteiligt sind. Der Stamm dieser Struktur ist ein funktionales Geräteobjekt (Functional Device Object, FDO) für einen Speicheradapter oder einen anderen Treiberstapel, der in den Speicherstapel integriert ist. Die Blätter dieser Struktur sind Geräteobjekte, die von Dateisystemen und Benutzermodusanwendungen verwendet werden können.

Wie jeder PnP-Treiber fügt sich eine Speicherklasse oder ein Speicherfiltertreiber der Struktur in der AddDevice-Routine hinzu, indem ein Geräteobjekt mit IoCreateDevice erstellt und mit IoAttachDeviceToDeviceStack an den Gerätestapel angefügt wird, wobei der Zeiger auf das Geräteobjekt verwendet wird, das der PnP-Manager bei der Initialisierung an die AddDevice-Routine des Treibers übergeben hat. IoAttachDeviceToDeviceStack fügt das neue Geräteobjekt an den aktuellen oberen Rand des Gerätestapels an.

Eine Band-Miniklasse, eine Miniklasse mit mittlerem Wechsel oder ein SCSI-Miniporttreiber ist nicht erforderlich, um ein Geräteobjekt zu erstellen und an den Gerätestapel anzufügen. Stattdessen übernimmt die vom System bereitgestellte Bandklasse, Changerklasse oder SCSI-Porttreiber diese Aufgaben im Namen der Miniklasse/des Miniports und ruft Miniklassen-/Miniporttreiberroutinen auf, um die zum Erstellen des Geräteobjekts erforderlichen Daten zu sammeln.

Speicherporttreiber erstellen physische Geräteobjekte (PDOs) vom Typ FILE_DEVICE_MASS_STORAGE. Die Treiber für Datenträgerklasse, CD-ROM-Klasse, Bandklasse und Changerklassen erstellen FDOs von Typen FILE_DEVICE_DISK, FILE_DEVICE_CD_ROM, FILE_DEVICE_TAPE und FILE_DEVICE_CHANGER.

Informationen zum Entwerfen von PnP-Treibern finden Sie in den Entwurfsrichtlinien für PnP-Treiber. Informationen zu PnP-bezogenen IoXxx-Routinen finden Sie unter Plug & Play Routinen.