Gestion des demandes adressées aux périphériques de stockage
Pour toutes les demandes qui nécessitent que le pilote de port de stockage exécute une requête sur un bus sous-jacent, le pilote de classe doit configurer un IRP avec un bloc de requête SCSI (SRB) contenant un bloc de descripteur de commande SCSI (CDB). Par conséquent, la plupart des pilotes de classe de stockage ont une ou plusieurs routines BuildRequest internes pour générer des SDR. Pour plus d’informations sur ces routines, consultez Routine BuildRequest du pilote de classe de stockage.
Les pilotes de classe de stockage transmettent également les requêtes IRP_MJ_SCSI au pilote de port de stockage sous-jacent. Une telle demande peut provenir d’un pilote de filtre de stockage.
Pour les requêtes IOCTL_SCSI_PASS_THROUGH , décrites dans Gestion des demandes de Pass-Through SCSI, le pilote de classe est chargé de définir le code MinorFunction sur IRP_MJ_DEVICE_CONTROL dans l’emplacement de la pile d’E/S du pilote de port de l’IRP avant de transmettre la demande de IRP_MJ_DEVICE_CONTROL au pilote de port avec IoCallDriver.
Chaque pilote de classe de stockage est responsable du fractionnement des demandes de transfert (IRP_MJ_READ et/ou IRP_MJ_WRITE) qui dépassent les fonctionnalités du HBA sous-jacent. Par conséquent, la plupart des pilotes de classe appellent également une routine SplitTransferRequest interne, décrite dans Routine SplitTransferRequest du pilote de classe de stockage, ou implémentent la même fonctionnalité dans leurs routines de répartition pour les demandes de lecture et d’écriture.
Pour plus d’informations sur la gestion des demandes adressées aux périphériques de stockage, consultez les rubriques suivantes :
Gestion des requêtes Pass-Through SCSI
Gestion des requêtes PnP adressées aux périphériques de stockage
Gestion des demandes d’alimentation vers les périphériques de stockage