Rotinas de miniporte do driver storport
Um driver de miniporte que trabalha com o driver Storport deve conter implementações das descrições de rotina listadas nesta seção e deve expô-las por meio de uma estrutura de HW_INITIALIZATION_DATA durante a fase de inicialização do driver de miniport.
As rotinas de driver de miniporto do Storport são, na maioria das vezes, equivalentes às respectivas contrapartes de porta SCSI (consulte Rotinas de driver de miniporto SCSI para obter mais informações). No entanto, há diferenças importantes entre o design do driver de porta SCSI e o do driver Storport, e essas rotinas devem acomodar essas diferenças.
Por exemplo, os drivers de miniporto que trabalham com o driver storport devem estar sempre preparados para receber outra solicitação de E/S após a conclusão da rotina HwStorStartIo . Um driver de miniporte que funciona com a porta SCSI não é necessário para fazer isso. A versão da porta SCSI não recebe uma nova solicitação de E/S até que ela sinalize explicitamente o driver de porta, usando a função StorPortNotification , que ele está preparado para lidar com outra solicitação.
Se a versão do Storport do driver de miniporto não puder lidar com uma solicitação no momento em que ela for enviada, ela terá um conjunto de funções de gerenciamento de fila, não disponíveis para a versão da porta SCSI, que permitem lidar com a sobrecarga. Assim como a versão da porta SCSI, a versão storport do driver de miniporto conclui a solicitação com SRB_STATUS_BUSY, mas ao contrário da versão da porta SCSI, ela também pode marcar a fila do dispositivo como ocupada usando a rotina StorPortDeviceBusy . Funções semelhantes permitem que o driver de miniporte pause e retome o processamento em todo o adaptador.
Para obter mais informações sobre as rotinas de suporte fornecidas pelo driver storport, consulte Rotinas de suporte ao driver do Storport.
Para obter mais informações sobre o driver storport, consulte Drivers de porta de armazenamento.
Veja a seguir as rotinas do driver de miniport:
Rotina | Descrição |
---|---|
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE | Manipula uma MSI (interrupção sinalizada por mensagem). |
HW_ADAPTER_CONTROL | Executa operações síncronas para controlar o estado ou o comportamento de um adaptador, como parar ou reiniciar o HBA para gerenciamento de energia. |
HW_BUILDIO | Processa o SRB com acesso não sincronizado a estruturas de dados do sistema compartilhado antes de passá-lo para HwStorStartIo. |
HW_DPC_ROUTINE | Rotina adiada para execução no DISPATCH IRQL por meio do mecanismo DPC (chamada de procedimento adiado). |
HW_FIND_ADAPTER | Usa a configuração fornecida para determinar se há suporte para um HBA específico e, se for, para retornar informações de configuração sobre esse adaptador. |
HW_INITIALIZE | Inicializa o driver de miniporte depois que ocorre uma reinicialização do sistema ou falha de energia. |
HW_INTERRUPT | O driver storport chama a rotina HwStorInterrupt depois que o HBA gera uma solicitação de interrupção. |
HW_PASSIVE_INITIALIZE_ROUTINE | Chamado após a rotina HwStorInitialize quando o IRQL atual está em PASSIVE_LEVEL. |
HW_RESET_BUS | Chamado pelo driver de porta para limpar as condições de erro. |
HW_STARTIO | O driver storport chama a rotina HwStorStartIo uma vez para cada solicitação de E/S de entrada. |
HW_TIMER | Chamado após o intervalo especificado quando o driver de miniporto chamado StorPortNotification com o valor RequestTimerCallNotificationType . |
HW_TRACING_ENABLED | Permite que o Storport notifique um miniporto de que o rastreamento de eventos está habilitado. |
HW_UNIT_CONTROL | Chamado para executar operações síncronas para controlar o estado do dispositivo de unidade de armazenamento. O driver de miniporto é notificado para iniciar uma unidade ou manipular uma transição de estado de energia para um dispositivo de unidade. |
HW_WORKITEM | Uma função de retorno de chamada fornecida pelo miniporto para processar uma solicitação de item de trabalho do Storport. |
STORPORT_TELEMETRY_EVENT | Descreve o conteúdo dos dados de telemetria do miniport. |
StorPortLogTelemetry | Registra um evento de telemetria de miniporte para ajudar a diagnosticar ou coletar informações úteis. O miniporto pode registrar oito pares nome-valor de finalidade geral e um buffer com comprimento máximo de 4KB, bem como vários campos relacionados a eventos definidos na estrutura STORPORT_TELEMETRY_EVENT. |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de