структура STORAGE_REQUEST_BLOCK (storport.h)
STORAGE_REQUEST_BLOCK — это структура блока запросов SCSI (SRB) расширенного формата. Структура обеспечивает добавление расширенных данных, связанных с функцией SRB.
Примечание
В будущем модели драйвера портов SCSI и драйвера для минипорта SCSI могут быть изменены или недоступны. Вместо этого рекомендуется использовать модели драйверов Storport и драйверов для мини-портов Storport .
Синтаксис
typedef struct _STORAGE_REQUEST_BLOCK {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
ULONG ReservedUlong1;
ULONG Signature;
ULONG Version;
ULONG SrbLength;
ULONG SrbFunction;
ULONG SrbFlags;
ULONG ReservedUlong2;
ULONG RequestTag;
USHORT RequestPriority;
USHORT RequestAttribute;
ULONG TimeOutValue;
union {
ULONG SystemStatus;
ULONG RequestTagHigh4Bytes;
} DUMMYUNIONNAME;
ULONG SystemStatus;
ULONG ZeroGuard1;
ULONG AddressOffset;
ULONG NumSrbExData;
ULONG DataTransferLength;
PVOID POINTER_ALIGN DataBuffer;
PVOID POINTER_ALIGN ZeroGuard2;
PVOID POINTER_ALIGN OriginalRequest;
PVOID POINTER_ALIGN ClassContext;
PVOID POINTER_ALIGN PortContext;
PVOID POINTER_ALIGN MiniportContext;
_STORAGE_REQUEST_BLOCK POINTER_ALIGN *NextSrb;
struct _STORAGE_REQUEST_BLOCK;
ULONG SrbExDataOffset[ANYSIZE_ARRAY];
} STORAGE_REQUEST_BLOCK, *PSTORAGE_REQUEST_BLOCK;
Члены
Length
Задает размер заголовка SRB для совместимости со структурой SCSI_REQUEST_BLOCK . Это равно смещению элемента Signature данной структуры.
Function
Задайте значение SRB_FUNCTION_STORAGE_REQUEST_BLOCK , чтобы указать, что это расширенный SRB. В отличие от SCSI_REQUEST_BLOCK, идентификатор функции SRB находится в элементе SrbFunction .
SrbStatus
Возвращает состояние завершенного запроса. Этот член должен быть задан драйвером мини-порта, прежде чем он уведомит драйвер операционной системы о том, что запрос выполнен, вызвав StorPortNotification с requestComplete. Значение этого элемента может иметь одно из следующих значений:
Значение | Значение |
---|---|
SRB_STATUS_PENDING | Указывает, что запрос выполняется. Драйвер порта операционной системы инициализирует SrbStatus этим значением. |
SRB_STATUS_SUCCESS | Указывает, что запрос был успешно выполнен. |
SRB_STATUS_ABORTED | Указывает, что запрос был прерван в соответствии с указаниями драйвера порта. Драйвер мини-порта устанавливает это состояние в элементе NextSrb для успешного SRB_FUNCTION_ABORT_COMMAND запроса. |
SRB_STATUS_ABORT_FAILED | Указывает, что попытка прервать запрос завершилась сбоем. Возвращает это состояние для запроса SRB_FUNCTION_ABORT_COMMAND, если не удается найти указанный запрос. |
SRB_STATUS_ERROR | Указывает, что запрос был выполнен с ошибкой в состоянии шины SCSI. |
SRB_STATUS_BUSY | Указывает, что драйверу мини-порта или целевому устройству не удалось принять запрос в настоящее время. Драйвер порта операционной системы повторно отправляет запрос позже. |
SRB_STATUS_INTERNAL_ERROR | Указывает, что драйверу Storport не удалось доставить запрос драйверу мини-порта или целевому устройству. В таких случаях состояние записывается в InternalStatus. |
SRB_STATUS_INVALID_REQUEST | Указывает, что драйвер мини-порта не поддерживает данный запрос. |
SRB_STATUS_NO_DEVICE | Указывает, что устройство не ответило. |
SRB_STATUS_TIMEOUT | Указывает, что истекло время ожидания запроса. |
SRB_STATUS_SELECTION_TIMEOUT | Указывает, что истекло время ожидания выбора устройства SCSI. |
SRB_STATUS_COMMAND_TIMEOUT | Указывает, что целевой объект не выполнил команду в течение ограниченного времени. |
SRB_STATUS_MESSAGE_REJECTED | Указывает, что целевой объект отклонил сообщение. Обычно возвращается только для таких запросов типа сообщений, как SRB_FUNCTION_TERMINATE_IO. |
SRB_STATUS_BUS_RESET | Указывает, что во время выполнения этого запроса произошел сброс шины. |
SRB_STATUS_PARITY_ERROR | Указывает, что в шине SCSI произошла ошибка четности и что повторная попытка завершилась сбоем. |
SRB_STATUS_REQUEST_SENSE_FAILED | Указывает, что команда с чувством запроса завершилась сбоем. Возвращается только в том случае, если адаптер шины узла (HBA) выполняет функцию автоматического запроса, а драйвер мини-порта устанавливает для параметра AutoRequestSense значение TRUE в PORT_CONFIGURATION_INFORMATION для этого адаптера HBA. |
SRB_STATUS_NO_HBA | Указывает, что HBA не отвечает. |
SRB_STATUS_DATA_OVERRUN | Указывает, что произошла ошибка переполнения или недостаточного выполнения данных. Драйвер мини-порта также должен обновить элемент DataTransferLength SRB, чтобы указать, сколько данных фактически было передано в случае недостаточного выполнения. |
SRB_STATUS_UNEXPECTED_BUS_FREE | Указывает, что целевой объект неожиданно отключен. |
SRB_STATUS_PHASE_SEQUENCE_FAILURE | Указывает, что адаптер HBA обнаружил недопустимую ошибку сбоя последовательности фазы. |
SRB_STATUS_REQUEST_FLUSHED | Указывает, что запрос состояния был остановлен. |
SRB_STATUS_BAD_FUNCTION | Указывает, что код функции SRB не поддерживается. |
SRB_STATUS_INVALID_PATH_ID | Указывает, что pathId , указанный в SRB, не существует. |
SRB_STATUS_INVALID_TARGET_ID | Указывает, что значение TargetID в SRB является недопустимым. |
SRB_STATUS_INVALID_LUN | Указывает, что значение lun в SRB является недопустимым. |
SRB_STATUS_ERROR_RECOVERY | Указывает, что запрос был выполнен с ошибкой в состоянии шины SCSI и что было получено сообщение SCSI INITIAT RECOVERY. |
SRB_STATUS_AUTOSENSE_VALID | Указывает, что данные, возвращаемые в SenseInfoBuffer , являются допустимыми. |
SRB_STATUS_QUEUE_FROZEN | Драйвер мини-порта никогда не должен присваивать члену SrbStatus это значение. Драйвер порта Windows может задать это значение, чтобы сообщить драйверу класса хранения о том, что его очередь запросов для определенного периферийного устройства была заблокирована. |
SRB_STATUS_NOT_POWERED | Указывает, что запрос завершился сбоем, так как целевой объект не работает. Для запросов с SRB_FLAGS_NO_KEEP_AWAKE, заданными в SrbFlags, запросы, отправленные в LUN, которые отключены, завершаются ошибкой с таким состоянием. |
SRB_STATUS_LINK_DOWN | Указывает, что запрос завершился сбоем, так как ссылка не работает. |
SRB_STATUS_BAD_SRB_BLOCK_LENGTH | Указывает, что запрос завершился сбоем из-за недопустимой длины SRB. |
ReservedUlong1
Зарезервировано. Задайте значение 0.
Signature
Сигнатура расширенного формата SRB. Для этого параметра задано значение SRB_SIGNATURE.
Version
Версия используемой структуры. Текущая версия — STORAGE_REQUEST_BLOCK_VERSION_1.
SrbLength
Длина этого расширенного SRB в байтах, включая эту структуру, адрес и все расширенные данные SRB.
SrbFunction
Указывает выполняемую операцию, которая может иметь одно из следующих значений:
Значение | Значение |
---|---|
SRB_FUNCTION_EXECUTE_SCSI (0x00) | В целевой логической единице должен выполняться запрос ввода-вывода устройства SCSI. При использовании NumSrbExData> 0 одна или несколько из следующих расширенных блочных структур запросов находятся со смещениями, указанными в SrbExDataOffset: SRBEX_DATA_SCSI_CDB16, SRBEX_DATA_SCSI_CDB32, SRBEX_DATA_SCSI_CDB_VAR, SRBEX_DATA_BIDIRECTIONALSRBEX_DATA_IO_INFO |
SRB_FUNCTION_IO_CONTROL (0x02) | Запрос — это запрос элемента управления вводом-выводом, исходящий из приложения пользовательского режима с выделенным адаптером HBA. SRB DataBuffer указывает на заголовок SRB_IO_CONTROL , за которым следует область данных. Значение в DataBuffer может использоваться драйвером независимо от значения MapBuffers. Допустимы только члены функции SRB, SrbFlags, TimeOutValue, DataBuffer и DataTransferLength , а также член SrbExtension , если драйвер мини-порта запрашивал расширения SRB при инициализации. Если драйвер мини-порта управляет выделенным приложением адаптером HBA таким образом, чтобы он поддерживал этот запрос, драйвер мини-порта должен выполнить запрос и уведомить драйвер порта операционной системы о завершении SRB, используя обычный механизм вызовов StorPortNotification с помощью RequestComplete и NextRequest. |
SRB_FUNCTION_RECEIVE_EVENT (0x03) | HBA должен быть подготовлен к получению уведомления об асинхронном событии от адресного целевого объекта. Элемент SRB DataBuffer указывает место размещения данных. ПРИМЕЧАНИЕ. Эта функция не отправляется в минипорт от Storport. |
SRB_FUNCTION_SHUTDOWN (0x07) | Система завершает работу. Драйвер мини-порта может получить несколько таких уведомлений, прежде чем все действия системы фактически остановятся. Однако последнее уведомление о завершении работы будет появляться после последнего запуска ввода-вывода. Расширенные данные SRB не требуются для этой функции. |
SRB_FUNCTION_FLUSH (0x08) | Драйвер мини-порта должен очистить все кэшированные данные для целевого устройства. Этот запрос отправляется драйверу мини-порта только в том случае, если для параметра CachesData задано значение TRUE в PORT_CONFIGURATION_INFORMATION для адаптера HBA. Расширенные данные SRB не требуются для этой функции. |
SRB_FUNCTION_ABORT_COMMAND (0x10) | Чтобы отменить запрос, на который указывает участник NextSrb , должно быть отправлено SCSIMESS_ABORT сообщение. Если это запрос очереди с тегами, вместо него следует использовать SCSIMESS_ABORT_WITH_TAG сообщение. Если указанный запрос был выполнен, этот запрос должен быть выполнен в обычном режиме. Расширенные данные SRB не требуются для этой функции. ПРИМЕЧАНИЕ. Эта функция не отправляется в минипорт от Storport. |
SRB_FUNCTION_RELEASE_RECOVERY (0x11) | На целевой контроллер должно быть отправлено SCSIMESS_RELEASE_RECOVERY сообщение. Расширенные данные SRB не требуются для этой функции. ПРИМЕЧАНИЕ. Эта функция не отправляется в минипорт от Storport. |
SRB_FUNCTION_RESET_BUS (0x12) | Шина SCSI должна быть сброшена с помощью сообщения SCSIMESS_BUS_DEVICE_RESET. Драйвер мини-порта получает этот запрос только в том случае, если истекло время ожидания заданного запроса, а для последующего запроса на прерывание запроса истекло время ожидания. Расширенные данные SRB не требуются для этой функции. |
SRB_FUNCTION_TERMINATE_IO (0x14) | Чтобы отменить запрос, на который указывает участник NextSrb , должно быть отправлено SCSIMESS_TERMINATE_IO_PROCESS сообщение. Если указанный запрос уже выполнен, этот запрос должен быть выполнен в обычном режиме. Расширенные данные SRB не требуются для этой функции. ПРИМЕЧАНИЕ. Эта функция не отправляется в минипорт от Storport. |
SRB_FUNCTION_RESET_DEVICE (0x16) | Целевой контроллер SCSI должен быть сброшен с помощью сообщения SCSIMESS_BUS_DEVICE_RESET. Драйвер мини-порта должен выполнять все активные запросы для целевого контроллера. Расширенные данные SRB не требуются для этой функции. |
SRB_FUNCTION_WMI (0x17) | Запрос представляет собой расширенный запрос power, отформатированный в виде SRBEX_DATA_WMI структуры. Смещение данных расширенного запроса находится в SrbExDataOffset[0]. |
SRB_FUNCTION_LOCK_QUEUE (0x18) | Содержит запросы, которые помещаются в очередь драйвером порта для определенной логической единицы, как правило, во время обработки запроса на питание. Допустимы только члены SRB Length, Function, SrbFlags и OriginalRequest . Если очередь заблокирована, будут обрабатываться только запросы с SrbFlags ORed с SRB_FLAGS_BYPASS_LOCKED_QUEUE . Драйверы мини-портов SCSI не обрабатывают запросы SRB_FUNCTION_LOCK_QUEUE . |
SRB_FUNCTION_UNLOCK_QUEUE (0x19) | Освобождает очередь драйвера порта для логического блока, который ранее был заблокирован SRB_FUNCTION_LOCK_QUEUE. SrbFlags запроса на разблокировку должен иметь значение ORed с SRB_FLAGS_BYPASS_LOCKED_QUEUE. Допустимы только члены SRB Length, Function, SrbFlags и OriginalRequest . Драйверы мини-портов SCSI не обрабатывают запросы SRB_FUNCTION_UNLOCK_QUEUE . |
SRB_FUNCTION_QUIESCE_DEVICE (0x1A) | Запрос выполняется только между классом хранения и драйвером порта хранения и не отправляется в мини-порт. Эта функция служит в качестве ожидания драйвера класса для драйвера порта для завершения всех невыполненных операций ввода-вывода. |
SRB_FUNCTION_RESET_LOGICAL_UNIT (0x20) | Если это возможно, логическая единица должна быть сброшена. Драйвер мини-порта HBA должен выполнять все активные запросы для логического блока. Расширенные данные SRB не требуются для этой функции. Storport поддерживает этот тип сброса, но порт SCSI — нет. |
SRB_FUNCTION_POWER (0x24) | Запрос представляет собой расширенный запрос power, отформатированный в виде SRBEX_DATA_POWER структуры. Смещение данных расширенного запроса находится в SrbExDataOffset[0]. |
SRB_FUNCTION_PNP (0x25) | Запрос является расширенным запросом PnP в формате SRBEX_DATA_PNP структуры. Смещение данных расширенного запроса находится в SrbExDataOffset[0]. |
SRB_FUNCTION_DUMP_POINTERS (0x26) | Запрос с этой функцией отправляется в драйвер мини-порта Storport, который используется для управления диском, на котором хранятся данные аварийного дампа. Запрос собирает сведения, необходимые от драйвера мини-порта для поддержки аварийного дампа и гибернации. См . структуру MINIPORT_DUMP_POINTERS . Чтобы получить запрос с этой функцией, физический драйвер мини-порта должен установить флаг STOR_FEATURE_DUMP_POINTERS в элементе FeatureSupport своего HW_INITIALIZATION_DATA . |
SRB_FUNCTION_FREE_DUMP_POINTERS (0x27) | Запрос с этой функцией отправляется драйверу мини-порта Storport, чтобы освободить все ресурсы, выделенные во время предыдущего запроса на SRB_FUNCTION_DUMP_POINTERS. |
SrbFlags
Указывает различные параметры и параметры для запроса. SrbFlags доступен только для чтения, за исключением случаев, когда задано SRB_FLAGS_UNSPECIFIED_DIRECTION и для обновления SRB_FLAGS_DATA_IN или SRB_FLAGS_DATA_OUT требуются драйверы мини-портов подчиненных адаптеров DMA. Этот элемент может иметь один или несколько из этих флагов.
Flag | Значение |
---|---|
SRB_FLAGS_QUEUE_ACTION_ENABLE | Указывает, что необходимо включить действия очереди с тегами. |
SRB_FLAGS_DISABLE_AUTOSENSE | Указывает, что не следует возвращать сведения о смысле запроса. |
SRB_FLAGS_DATA_IN | Указывает, что данные будут передаваться с устройства в систему. |
SRB_FLAGS_DATA_OUT | Указывает, что данные будут передаваться из системы на устройство. |
SRB_FLAGS_UNSPECIFIED_DIRECTION | Этот флаг, определенный для обратной совместимости с интерфейсами SCSI ASPI/CAM, указывает, что направление передачи может быть любой из предыдущих, так как установлены оба предыдущих флага. Если этот флаг установлен, драйвер мини-порта должен определить направление передачи, проверив этап данных для целевого объекта на шине SCSI. |
SRB_FLAGS_NO_DATA_TRANSFER | Указывает на отсутствие передачи данных с этим запросом. Если этот параметр задан, флаги SRB_FLAGS_DATA_OUT, SRB_FLAGS_DATA_IN и SRB_FLAGS_UNSPECIFIED_DIRECTION будут ясны. |
SRB_FLAGS_DISABLE_SYNCH_TRANSFER | Указывает, что адаптер шины должен по возможности выполнять асинхронные операции ввода-вывода для этого запроса на передачу. Если синхронные операции ввода-вывода были согласованы ранее, HBA должен пересмотреть асинхронный ввод-вывод перед выполнением передачи. |
SRB_FLAGS_DISABLE_DISCONNECT | Указывает, что адаптер HBA не должен разрешать целевому объекту отключаться от шины SCSI во время обработки этого запроса. |
SRB_FLAGS_BYPASS_FROZEN_QUEUE | Этот флаг не имеет отношения к водителям минипорта. |
SRB_FLAGS_NO_QUEUE_FREEZE | Этот флаг не имеет отношения к водителям минипорта. |
SRB_FLAGS_IS_ACTIVE | Этот флаг не имеет отношения к водителям минипорта. |
SRB_FLAGS_ALLOCATED_FROM_ZONE | Этот флаг не имеет отношения к драйверам miniport и устарел для новых драйверов класса Windows. Для устаревшего драйвера класса Windows это указывает, был ли SRB выделен из буфера зоны. Если этот флаг установлен, драйвер класса должен вызвать ExInterlockedFreeToZone , чтобы освободить SRB; в противном случае он должен вызывать ExFreePool. Новые драйверы классов должны использовать списки lookaside, а не буферы зоны. |
SRB_FLAGS_SGLIST_FROM_POOL | Этот флаг не имеет отношения к водителям минипорта. Для драйвера класса это означает, что память для точечных и сборных списков была выделена из непагрегированного пула. Если этот флаг установлен, драйвер класса должен вызвать ExFreePool , чтобы освободить память после завершения SRB. |
SRB_FLAGS_BYPASS_LOCKED_QUEUE | Этот флаг не имеет отношения к водителям минипорта. Для драйвера порта этот флаг указывает, что запрос должен обрабатываться независимо от того, заблокирована ли очередь логических единиц. Драйвер более высокого уровня должен установить этот флаг для отправки запроса SRB_FUNCTION_UNLOCK_QUEUE . |
SRB_FLAGS_NO_KEEP_AWAKE | Этот флаг не имеет отношения к водителям минипорта. Драйвер класса Windows использует этот флаг, чтобы указать драйверу порта на неудачу запроса, а не для включения устройства для обработки этого запроса. |
SRB_FLAGS_FREE_SENSE_BUFFER | Указывает, что порт или драйвер минипорта выделил буфер для данных контроля. Это информирует драйвер класса о том, что он должен освободить буфер данных осмысления после извлечения данных. |
SRB_FLAGS_D3_PROCESSING | Указывает, что запрос является частью обработки D3. Минипорты, поддерживающие управление питанием среды выполнения, не должны вызывать StorPortPoFxActivateComponent или StorPortPoFxIdleComponent с этими запросами. |
SRB_FLAGS_ADAPTER_CACHE_ENABLE | Указывает, что адаптер может кэшировать данные. |
ReservedUlong2
Зарезервировано. Задайте значение 0.
RequestTag
Содержит значение тега очереди, назначенное драйвером порта для конкретной операционной системы. Если этот элемент используется для очередей с тегами, HBA поддерживает внутреннюю очередь запросов к логическим единицам , а драйвер miniport устанавливает для параметра TaggedQueueing значение TRUE в PORT_CONFIGURATION_INFORMATION для этого адаптера.
RequestPriority
Назначение приоритета для SRB. Может иметь одно из следующих значений.
Значение | Значение |
---|---|
StorIoPriorityVeryLow (0) | Очень низкий приоритет. |
StorIoPriorityLow (1) | Низкий приоритет. |
StorIoPriorityNormal (2) | Обычный приоритет. |
StorIoPriorityHigh (3) | Высокий приоритет. |
StorIoPriorityCritical (4) | Критический приоритет. |
RequestAttribute
Указывает сообщение с тегами очереди, которое будет использоваться при установке флага SRB_FLAGS_QUEUE_ACTION_ENABLE . Это может быть одно из следующих значений: SRB_SIMPLE_TAG_REQUEST, SRB_HEAD_OF_QUEUE_TAG_REQUEST или SRB_ORDERED_QUEUE_TAG_REQUEST.
TimeOutValue
Указывает интервал (в секундах), который запрос может выполнить до того, как драйвер порта операционной системы может считать, что истекло время ожидания. Драйверы мини-порта не требуются для запросов времени, так как драйвер порта уже это делает.
DUMMYUNIONNAME
Внедренное объединение.
DUMMYUNIONNAME.SystemStatus
Используется для хранения сведений о состоянии сбоя системы в условиях сбоя SrbStatus (например, SRB_STATUS_INTERNAL_ERROR).
DUMMYUNIONNAME.RequestTagHigh4Bytes
Используется для хранения четырех байтов уникального тега, если функция уникального тега включена.
SystemStatus
Используется драйвером Storport вместо SrbStatus, чтобы сообщать о состоянии завершенного запроса всякий раз, когда запрос не может быть доставлен драйверу мини-порта. В таких случаях SrbStatus имеет значение SRB_STATUS_INTERNAL_ERROR. Этот элемент используется исключительно для обмена данными между Storport и драйвером класса и не должен использоваться драйверами минипорта.
ZeroGuard1
Область защиты от водителей, которые интерпретируют эту структуру как SCSI_REQUEST_BLOCK. Задайте значение 0.
AddressOffset
Смещение адреса запроса на хранение от начала этой структуры. Это смещение находит структуру STOR_ADDRESS , содержащую адрес запроса.
NumSrbExData
Количество расширенных блоков данных SRB для этого запроса.
DataTransferLength
Указывает размер буфера данных в байтах. Если происходит недостаточное выполнение, драйвер мини-порта должен обновить этот элемент до количества фактически переданных байтов.
DataBuffer
Указывает на буфер данных. Драйверы мини-порта не должны использовать это значение в качестве указателя данных, если драйвер мини-порта не устанавливает для MapBuffers значение TRUE в PORT_CONFIGURATION_INFORMATION для адаптера шины. Однако в случае SRB_FUNCTION_IO_CONTROL запросов драйверы минипорта могут использовать это значение в качестве указателя данных независимо от значения MapBuffers.
ZeroGuard2
Область защиты от водителей, которые интерпретируют эту структуру как SCSI_REQUEST_BLOCK. Задайте значение 0.
OriginalRequest
Указывает на IRP для этого запроса. Этот элемент не относится к драйверам минипорта.
ClassContext
Указывает на данные контекста драйвера класса для этого запроса. Этот элемент не относится к драйверам минипорта.
PortContext
Указывает на данные контекста драйвера порта для этого запроса. Этот элемент не относится к драйверам минипорта.
MiniportContext
Указывает на расширение Srb. Драйвер мини-порта не должен использовать этот элемент, если в HW_INITIALIZATION_DATA для SrbExtensionSize задано значение 0. Память в MiniportContext не инициализируется драйвером порта, зависящим от операционной системы, и к данным, определяемым драйвером мини-порта, может обращаться напрямую адаптер HBA. Соответствующий физический адрес можно получить, вызвав StorportGetPhysicalAddress с указателем MiniportContext .
NextSrb
Указывает STORAGE_REQUEST_BLOCK , к которому применяется этот запрос. Только небольшое подмножество запросов использует второй SRB, например SRB_FUNCTION_ABORT_COMMAND.
_STORAGE_REQUEST_BLOCK
SrbExDataOffset[ANYSIZE_ARRAY]
Массив смещений, указывающих расположение расширенных блоков данных для SRB. Этот массив пуст, если NumSrbExData = 0.
Комментарии
Начиная с Windows 8, расширенный тип SRB поддерживается с использованием структуры STORAGE_REQUEST_BLOCK. STORAGE_REQUEST_BLOCK расширяет функции SRB, позволяя добавлять в запрос расширенные блоки данных для функции SRB. Поддержка запросов SRB с использованием структуры SCSI_REQUEST_BLOCK будет продолжена.
Если значение NumSrbExData> 0, смещения для расширенных блоков данных SRB находятся в массиве SrbExDataOffset . Каждое смещение относится к началу этой структуры и указывает на SRBEX_DATA структуру, содержащую расширенный блок данных.
Адрес целевого устройства для SRB находится в STOR_ADDRESS структуре, указанной параметром AddressOffset.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 8 и более поздних версиях Windows. |
Верхняя часть | storport.h (включая Storport.h, Srb.h, Minitape.h) |