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