Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы воспользоваться преимуществами высокопроизводительных адаптеров хранилища, минипорт-драйверы должны контролировать очереди устройств, приостановку и возобновление этих очередей способами, которые позволят повысить эффективность.
В модели очереди портов SCSI управление очередями является эксклюзивным доменом драйвера порта. В модели очередей Storport драйвер портов предоставляет несколько подпрограмм поддержки управления очередями, которые предоставляют драйверу минипорта значительный объем управления очередью.
В модели очередей Storport все запросы помещаются в очередь драйвера портов для каждой логической единицы. Без расширенной поддержки SRB каждая логическая единица может иметь не более 255 невыполненных запросов. В противном случае глубина очереди ограничена только доступными системными ресурсами или возможностями адаптера. Когда достигнуто ограничение для глубины очереди, Storport сохраняет дополнительные запросы к этой логической единице, пока число невыполненных запросов к единице не снижается до максимального значения очереди.
Не существует предопределенных ограничений из Storport по количеству невыполненных запросов, которые может иметь адаптер. Например, адаптер с 55 логическими единицами, подключенными к нему с глубиной очереди 255, может размещать не более 14 025 (55 x 255) запросов за раз. См. следующую схему для описания модели очереди драйвера порта.
Модель очереди драйвера портов
Если адаптер и логическая единица оба готовы к получению запроса, система вызывает подпрограммы HwStorBuildIo и HwStorStartIo именно в этом порядке.
В отличие от порта SCSI, Storport позволяет минипорт-драйверам уведомлять драйвер порта о напряженных условиях. Эти коммуникации обрабатываются следующими восемью подпрограммами, которые позволяют минипорту сигнализировать, когда логическая единица или адаптер приостановлена или занята.
| Подпрограмма Storport | Выполн. действие |
|---|---|
Приостановка устройства в течение указанного периода времени. |
|
Возобновление приостановленного устройства. |
|
Приостановка адаптера в течение указанного периода времени. |
|
Возобновление приостановленного адаптера. |
|
Убедитесь, что устройство занято до тех пор, пока очередь устройства не завершит указанный номер запросов ввода-вывода. |
|
Сделайте занятое устройство готовым к получению запросов еще раз. |
|
Сделайте адаптер занят, пока не завершится указанное число запросов ввода-вывода. |
|
Приведите занятый адаптер в состояние готовности для приема запросов снова. |
Пока устройство приостановлено или занято, драйвер порта не отправляет запросы на устройство. Если минипорт-драйвер завершает запрос с состоянием занятости (SRB_STATUS_BUSY или SCSISTAT_BUSY), драйвер порта будет повторять запрос неограниченное количество раз, пока запрос либо не завершится с ошибкой, либо не будет выполнен.
Помимо предоставления набора явных подпрограмм управления очередями, недоступных в модели очереди портов SCSI, модель очереди Storport не использует неявные подпрограммы управления очередями, используемые портом SCSI. В частности, уведомления NextRequest и NextLuRequest игнорируются.