Взаимодействие с драйвером порта хранилища
Обмен данными между драйвером минипорта хранилища и драйвером порта хранилища, предоставляемым системой, происходит следующим образом:
Мини-порт вызывает набор процедур поддержки, предоставляемых драйвером порта хранилища
Минипорт реализует стандартный набор процедур для вызова драйвера порта хранилища, некоторые из которых являются обязательными, а некоторые — необязательными.
Подпрограммы драйвера мини-порта, вызываемые драйвером порта SCSI, драйвером Storport и драйвером порта ATA, очень похожи друг на друга.
Драйверы хранилища минипорта не должны вызывать процедуры операционной системы (ОС), отличные от процедур поддержки, предоставляемых соответствующей поддержкой драйвера портов. Пример:
- Драйверы минипорта хранилища не должны вызывать KeQuerySystemTime, а вызывать подпрограммы, такие как ScsiPortQuerySystemTime или StorPortQuerySystemTime.
- Драйверы минипорта хранилища не должны вызывать MmGetPhysicalAddress, а должны вызывать такие подпрограммы, как ScsiPortGetPhysicalAddress и StorPortGetPhysicalAddress.
Примечание
Драйверы минипорта, которые должны быть сертифицированы windows HLK, не смогут пройти тест импорта хранилища , если они вызывают подпрограммы ОС, и, таким образом, не имеют права на участие в программе совместимости оборудования Windows.
Не используйте процедуры уровня абстракции оборудования в драйверах минипорта.