Compartilhar via


Modelo de E/S de Porta SCSI

O driver de porta SCSI se comunica com seu driver de miniporta por meio de uma série de ponteiros para miniportar rotinas de retorno de chamada de driver em sua tabela de expedição e objeto de driver. O driver de miniporto chama ScsiPortInitialize de sua rotina DriverEntry para inicializar a tabela de expedição da porta SCSI e o objeto de driver com esses ponteiros de retorno de chamada. Um desses ponteiros de retorno de chamada é o ponto de entrada para a rotina de E/S de início do driver de miniport que é usada para processar solicitações de E/S. O driver de porta atribui esse ponteiro ao membro DriverStartIo do objeto driver.

Sempre que a Porta SCSI recebe uma solicitação de E/S de um driver de nível superior, ela enfileira a solicitação em uma fila interna. Para obter mais informações sobre as filas internas da porta SCSI, consulte Gerenciamento de filas do Driver de Porta SCSI.

Quando o dispositivo de destino estiver pronto para receber a próxima solicitação de E/S, a Porta SCSI chamará IoStartPacket, que, por sua vez, chama a rotina de retorno de chamada de E/S de início do driver de miniporta armazenada em DriverObject-DriverStartIo>. Para obter informações sobre a operação e as características necessárias da rotina de E/S de início do driver de miniporto, consulte Rotina HwScsiStartIo do Driver de Miniport scsi.

A Porta SCSI gera o IRQL do processador antes de chamar a rotina de E/S de início do driver de miniport, a fim de mascarar interrupções e garantir que a rotina de E/S inicial tenha sincronizado o acesso a estruturas críticas do sistema operacional e do driver.

Embora o fluxo de pacotes de solicitação de E/S entre um driver de classe de armazenamento e o driver de porta SCSI seja assíncrono, o fluxo de pacotes de solicitação de E/S entre o driver de Porta SCSI e o dispositivo de destino é síncrono. A Porta SCSI usa um sistema de enfileiramento interno que possibilita que os drivers de classe enviem novas solicitações de E/S para a Porta SCSI antes que as solicitações de E/S anteriores tenham sido concluídas. No entanto, a Porta SCSI não envia a próxima solicitação de E/S para o dispositivo de destino até receber uma notificação do driver de miniporto de que o driver de miniporto está pronto para receber a próxima solicitação de E/S. O driver de miniporta notifica a Porta SCSI fazendo uma chamada para a rotina da biblioteca ScsiPortNotification .

O Storport Driver oferece um modelo de E/S mais flexível, especialmente no que diz respeito ao mascaramento de interrupções. Para obter informações sobre as diferenças entre o modelo de E/S do Storport e o modelo de E/S da Porta SCSI, consulte Modelo de E/S do Storport.