структура SCSI_PNP_REQUEST_BLOCK (minitape.h)
СтруктураSCSI_PNP_REQUEST_BLOCK — это специальная версия SCSI_REQUEST_BLOCK , которая используется для запросов plug and play (PNP).
Синтаксис
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. Этот элемент может иметь одно из следующих значений:
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.
Требования
Требование | Значение |
---|---|
Заголовок | minitape.h (включая Storport.h, Minitape.h, Srb.h) |