Comunicando-se com um driver de porta de armazenamento
A comunicação entre um driver de miniporto de armazenamento e um driver de porta de armazenamento fornecido pelo sistema ocorre da seguinte maneira:
Um miniporto chama um conjunto de rotinas de suporte fornecidas pelo driver de porta de armazenamento
Um miniporto implementa um conjunto padrão de rotinas para seu driver de porta de armazenamento chamar, algumas necessárias e outras opcionais
As rotinas de driver de miniporta chamadas pelo driver de porta SCSI, pelo driver Storport e pelo driver de porta do ATA são muito semelhantes umas às outras.
Os drivers de miniporta de armazenamento devem evitar chamar rotinas do sistema operacional (SO) que não sejam as rotinas de suporte fornecidas pelo suporte ao driver de porta apropriado. Por exemplo:
- Os drivers de miniporto de armazenamento não devem chamar KeQuerySystemTime, mas devem chamar rotinas como ScsiPortQuerySystemTime ou StorPortQuerySystemTime.
- Os drivers de miniporto de armazenamento não devem chamar MmGetPhysicalAddress, mas devem chamar rotinas como ScsiPortGetPhysicalAddress e StorPortGetPhysicalAddress.
Observação
Drivers de miniporta que buscam ser certificados pelo Windows HLK falharão no Teste de Importações de Armazenamento se chamarem rotinas do sistema operacional e, portanto, não se qualificarão para o Programa de Compatibilidade de Hardware do Windows.
Não use rotinas de camada de abstração de hardware em drivers de miniporta.