структура SCSI_PNP_REQUEST_BLOCK (storport.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

Выполняемая операция plug and play. Этот элемент может иметь одно из следующих значений:

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

SrbFlags

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

DataTransferLength

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

TimeOutValue

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

DataBuffer

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

SenseInfoBuffer

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

NextSrb

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

OriginalRequest

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

SrbExtension

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

SrbPnPFlags

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

Reserved

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

Reserved4[16]

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

Комментарии

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

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

Требования

Требование Значение
Заголовок storport.h (включая Storport.h, Minitape.h, Srb.h)

См. также раздел

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification