Freigeben über


Behandeln von Anforderungen an Speicherperipheriegeräte

Für alle Anforderungen, für die der Speicherporttreiber eine Anforderung über einen zugrunde liegenden Bus ausführen muss, muss der Klassentreiber einen IRP mit einem SCSI-Anforderungsblock (SRB) einrichten, der einen SCSI-Befehlsdeskriptorblock (CDB) enthält. Folglich verfügen die meisten Speicherklassentreiber über eine oder mehrere interne BuildRequest-Routinen zum Erstellen von SRBs. Weitere Informationen zu solchen Routinen finden Sie unter BuildRequest Routine des Speicherklassentreibers.

Speicherklassentreiber übergeben auch IRP_MJ_SCSI Anforderungen an den zugrunde liegenden Speicherporttreiber. Eine solche Anforderung kann von einem Speicherfiltertreiber stammen.

Für IOCTL_SCSI_PASS_THROUGH Anforderungen, die unter Behandeln von SCSI-Pass-Through-Anforderungen beschrieben werden, ist der Klassentreiber dafür verantwortlich, den MinorFunction-Code auf IRP_MJ_DEVICE_CONTROL im E/A-Stapel des IRP des Porttreibers festzulegen, bevor er die IRP_MJ_DEVICE_CONTROL Anforderung an den Porttreiber mit IoCallDriver weitergibt.

Jeder Speicherklassentreiber ist für das Aufteilen von Übertragungsanforderungen (IRP_MJ_READ und/oder IRP_MJ_WRITE) verantwortlich, die die Funktionen des zugrunde liegenden HBA überschreiten. Daher rufen die meisten Klassentreiber auch eine interne SplitTransferRequest-Routine auf, die in der SplitTransferRequest-Routine des Speicherklassentreibers beschrieben wird, oder implementieren dieselbe Funktionalität in ihren Dispatchroutinen für Lese- und Schreibanforderungen.

Weitere Informationen zum Behandeln von Anforderungen an Speicherperipheriegeräte finden Sie in den folgenden Themen:

Behandeln von SCSI-Pass-Through-Anforderungen

Behandeln von PnP-Anforderungen an Speicherperipheriegeräte

Behandeln von Energieanforderungen an Speicherperipheriegeräte

Warteschlangenspeicheranforderungen