Enfileiramento de solicitações de armazenamento
Embora seja possível que um driver de classe de armazenamento configure filas internas para IRPs, raramente é necessário fazer isso e provavelmente também degradar o desempenho do driver, pois o driver de porta de armazenamento já mantém filas de dispositivos específicas de LU criadas pelo driver para IRPs. Se um HBA específico dá suporte ou não a vários comandos pendentes (por exemplo, enfileiramento marcado por SCSI), os drivers de classe de armazenamento podem enviar cada solicitação para seus dispositivos à medida que cada IRP entra e depende do driver de porta fornecido pelo sistema ou do HBA para lidar com solicitações enfileiradas rapidamente.
Quando determinados erros scsi ocorrem, o driver de porta do sistema congela a fila específica de LU apropriada e notifica o driver de classe. Para obter mais informações sobre como lidar com erros e liberar filas de solicitação congeladas, consulte o seguinte:
Rotina ReleaseQueue do Driver da Classe de Armazenamento
Rotina InterpretRequestSense do Driver de Classe de Armazenamento
Rotina RetryRequest do Driver de Classe de Armazenamento
Se um HBA der suporte ao enfileiramento de comandos, conforme indicado nos dados de STORAGE_ADAPTER_DESCRIPTOR retornados, o driver de classe definirá SRB_FLAGS_QUEUE_ENABLE e usará o membro QueueAction dos SRBs que ele cria para controlar como suas solicitações são enfileiradas.