Поделиться через


структура SCSI_PNP_REQUEST_BLOCK (srb.h)

СтруктураSCSI_PNP_REQUEST_BLOCK — это специальная версия SCSI_REQUEST_BLOCK, которая используется для запросов plug and play (PNP).

примечание модели драйверов портов SCSI и мини-порта SCSI могут быть изменены или недоступны в будущем. Вместо этого мы рекомендуем использовать драйвера Storport и минипорта Storport модели драйверов.
 

Синтаксис

typedef struct _SCSI_PNP_REQUEST_BLOCK {
  USHORT                     Length;
  UCHAR                      Function;
  UCHAR                      SrbStatus;
  UCHAR                      PnPSubFunction;
  UCHAR                      PathId;
  UCHAR                      TargetId;
  UCHAR                      Lun;
  STOR_PNP_ACTION            PnPAction;
  ULONG                      SrbFlags;
  ULONG                      DataTransferLength;
  ULONG                      TimeOutValue;
  PVOID                      DataBuffer;
  PVOID                      SenseInfoBuffer;
  struct _SCSI_REQUEST_BLOCK *NextSrb;
  PVOID                      OriginalRequest;
  PVOID                      SrbExtension;
  ULONG                      SrbPnPFlags;
  ULONG                      Reserved;
  UCHAR                      Reserved4[16];
} SCSI_PNP_REQUEST_BLOCK, *PSCSI_PNP_REQUEST_BLOCK;

Члены

Length

Размер структуры SCSI_PNP_REQUEST_BLOCK в байтах.

Function

Выполняемая операция. Для структуры SCSI_PNP_REQUEST_BLOCK этот элемент всегда имеет значение SRB_FUNCTION_PNP.

SrbStatus

Состояние завершенного запроса. Минипорт-драйвер должен задать это значение перед уведомлением драйвера Storport о завершении запроса. Минипорт-драйвер уведомляет драйвер Storport о том, что запрос выполнен путем вызова подпрограммы StorPortNotification с типом уведомления RequestComplete. Список возможных значений состояния см. в SCSI_REQUEST_BLOCK.

PnPSubFunction

Этот элемент в настоящее время не используется. Мини-порты игнорируют этот элемент.

PathId

Идентификатор порта SCSI или шины для запроса. Это значение равно нулю.

TargetId

Целевой контроллер или идентификатор устройства на шине.

Lun

Логический номер единицы (LUN) устройства.

PnPAction

Действие подключаемого модуля и воспроизведения для выполнения. Этот элемент может иметь одно из следующих значений:

Ценность Значение
StorStartDevice
0x00
Запустите устройство.
StorRemoveDevice
0x02
Удалите устройство.
StorStopDevice
0x04
Остановите устройство.
StorQueryCapabilities
0x09
Запрос возможностей устройства.
StorQueryRequirements
0x0B
Запрос требований к ресурсам для устройства.
StorFilterResourceRequirements
0x0D
Фильтрация требований к ресурсам для устройства.
StorSupriseRemoval
0x17
Неожиданное удаление устройства. Это значение было добавлено в Windows 7.

SrbFlags

Минипорт-драйвер должен игнорировать этот элемент.

DataTransferLength

Минипорт-драйвер должен игнорировать этот элемент.

TimeOutValue

Интервал в секундах, который запрос может выполняться до того, как драйвер Storport определяет время ожидания запроса.

DataBuffer

Минипорт-драйвер должен игнорировать этот элемент.

SenseInfoBuffer

Минипорт-драйвер должен игнорировать этот элемент.

NextSrb

Минипорт-драйвер должен игнорировать этот элемент.

OriginalRequest

Минипорт-драйвер должен игнорировать этот элемент.

SrbExtension

Указатель на расширение SRB. Минипорт-драйвер не должен использовать этот элемент, если он устанавливает SrbExtensionSize значение нулю в структуре HW_INITIALIZATION_DATA. Драйвер Storport не инициализирует память, на которую указывает этот член. HBA может напрямую получить доступ к данным, которые драйвер минипорта записывает в расширение SRB. Минипорт-драйвер может получить физический адрес расширения SRB, вызвав подпрограмму StorPortGetPhysicalAddress.

SrbPnPFlags

Флаги PNP. В настоящее время единственным допустимым флагом является SRB_PNP_FLAGS_ADAPTER_REQUEST, указывающее, что запрос PNP предназначен для адаптера, а не для одного из устройств на адаптере. Если этот флаг задан, драйвер минипорта должен игнорировать значения в PathId, TargetIdи Lun.

Reserved

Зарезервировано для использования системы.

Reserved4[16]

Зарезервировано для использования системы.

Замечания

Драйвер Storport отправляет SCSI_PNP_REQUEST_BLOCK запросы к драйверу минипорта, чтобы уведомить драйвер минипорта о событиях подключаемого модуля Windows и воспроизведения, влияющих на устройства хранения, подключенные к адаптеру.

Драйвер Storport вызывает HwStorBuildIo для передачи SROB-объектов в минипорт-драйвер. HwStorBuildIo проверяет функцию элемента SRB, чтобы определить тип SRB. Если для элемента функции задано значение SRB_FUNCTION_PNP, SRB — это структура типа SCSI_PNP_REQUEST_BLOCK.

Требования

Требование Ценность
заголовка srb.h (include Storport.h, Minitape.h, Srb.h)

См. также

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification