структура SCSI_WMI_REQUEST_BLOCK (storport.h)

Эта структура представляет собой специальную версию SCSI_REQUEST_BLOCK для использования с командами WMI.

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

Синтаксис

typedef struct _SCSI_WMI_REQUEST_BLOCK {
  USHORT Length;
  UCHAR  Function;
  UCHAR  SrbStatus;
  UCHAR  WMISubFunction;
  UCHAR  PathId;
  UCHAR  TargetId;
  UCHAR  Lun;
  UCHAR  Reserved1;
  UCHAR  WMIFlags;
  UCHAR  Reserved2[2];
  ULONG  SrbFlags;
  ULONG  DataTransferLength;
  ULONG  TimeOutValue;
  PVOID  DataBuffer;
  PVOID  DataPath;
  PVOID  Reserved3;
  PVOID  OriginalRequest;
  PVOID  SrbExtension;
  ULONG  Reserved4;
  ULONG  Reserved6;
  UCHAR  Reserved5[16];
} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;

Члены

Length

Задает размер этой структуры в байтах.

Function

SRB_FUNCTION_WMI, указывающее, что запрос является запросом WMI. Если для этого элемента не задано значение SRB_FUNCTION_WMI, драйвер мини-порта не должен выполнить запрос.

SrbStatus

Возвращает состояние завершенного запроса. Этот элемент должен быть задан драйвером мини-порта, прежде чем уведомлять драйвер операционной системы о завершении запроса путем вызова ScsiPortNotification с помощью RequestComplete. Значение этого элемента может быть любым значением, указанным для SrbStatus в SCSI_REQUEST_BLOCK.

WMISubFunction

Указывает выполняемую операцию WMI. Драйвер мини-порта вызывает ScsiPortWmiDispatchFunction , для параметра MinorFunction задано это значение. Значение подфункции соответствует вспомогательному номеру IRP WMI, идентифицирующее операцию WMI.

PathId

Указывает порт или шину SCSI для запроса. Это значение отсчитывается от нуля. Если SRB_WMI_FLAGS_ADAPTER_REQUEST задано в WMIFlags, этот элемент зарезервирован.

TargetId

Указывает целевой контроллер или устройство в шине. Если SRB_WMI_FLAGS_ADAPTER_REQUEST задано в WMIFlags, этот элемент зарезервирован.

Lun

Указывает логический номер устройства. Если SRB_WMI_FLAGS_ADAPTER_REQUEST задано в WMIFlags, этот элемент зарезервирован.

Reserved1

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

WMIFlags

Указывает, что запрос WMI предназначен для адаптера, если задано SRB_WMI_FLAGS_ADAPTER_REQUEST и зарезервированы PathId, TargetId и Lun . В противном случае WMIFlags будет иметь значение NULL, указывая, что запрос предназначен для устройства, указанного в параметрах PathId, TargetId и Lun.

Reserved2[2]

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

SrbFlags

Указывает различные параметры и параметры запроса. SrbFlags доступен только для чтения. Для этого элемента будет задан один или несколько следующих флагов ORed вместе:

SRB_FLAGS_DATA_IN

Указывает, что данные будут передаваться с устройства в систему.

SRB_FLAGS_DATA_OUT

Указывает, что данные будут передаваться из системы на устройство.

SRB_FLAGS_NO_DATA_TRANSFER

Указывает на отсутствие передачи данных с этим запросом. Если этот параметр задан, флаги SRB_FLAGS_DATA_OUT, SRB_FLAGS_DATA_IN и SRB_FLAGS_UNSPECIFIED_DIRECTION будут ясны.

SRB_FLAGS_DISABLE_SYNCH_TRANSFER

Указывает, что HBA, если это возможно, должен выполнять асинхронные операции ввода-вывода для этого запроса на передачу. Если синхронные операции ввода-вывода были согласованы ранее, перед выполнением передачи адаптеру HBA необходимо пересмотреть согласование для асинхронного ввода-вывода.

SRB_FLAGS_DISABLE_DISCONNECT

Указывает, что HBA не должен разрешать целевому объекту отключаться от шины SCSI во время обработки этого запроса.

DataTransferLength

Указывает размер буфера данных в байтах. Драйвер мини-порта вызывает ScsiPortWmiDispatchFunction с параметром BufferSize , равным этому значению. Если происходит недостаточное выполнение, драйвер мини-порта должен обновить этот элемент до количества фактически переданных байтов.

TimeOutValue

Указывает интервал в секундах, который может выполнить запрос до того, как драйвер порта операционной системы может считать, что истекло время ожидания. Драйверы мини-портов не требуются для запросов времени, так как драйвер порта уже это делает.

DataBuffer

Указывает на буфер данных. Драйвер мини-порта вызывает ScsiPortWmiDispatchFunctionс буфером, равным этому значению. Драйверы мини-портов могут использовать это значение в качестве указателя данных независимо от значения MapBuffers в PORT_CONFIGURATION_INFORMATION для HBA. Драйвер мини-порта не может передавать данные непосредственно в буфер с помощью DMA.

DataPath

Указывает путь к данным WMI для этого запроса. Драйвер мини-порта вызывает ScsiPortWmiDispatchFunction , а dataPath имеет это значение.

Reserved3

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

OriginalRequest

Указывает на IRP для этого запроса. Этот член не имеет отношения к драйверам минипорта.

SrbExtension

Указывает на расширение Srb. Драйвер мини-порта не должен использовать этот член, если в HW_INITIALIZATION_DATA для SrbExtensionSize задано значение 0. Память в SrbExtension не инициализируется драйвером порта, зависящим от ОПЕРАЦИОННОй системы, и к данным, определяемым драйвером мини-порта, можно получить непосредственно с помощью адаптера HBA. Соответствующий физический адрес можно получить, вызвав ScsiPortGetPhysicalAddress с указателем SrbExtension .

Reserved4

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

Reserved6

Зарезервировано для системного использования и недоступно для использования драйверами мини-портов. Этот член действителен, начиная с Windows Server 2003 с пакетом обновления 1 (SP1).

Reserved5[16]

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

Комментарии

Windows NT класс хранения и драйверы фильтров могут отправлять SSP-файлы WMI в драйвер системного порта. Драйвер системного порта будет обрабатывать определенные запросы WMI от имени драйверов мини-портов. Если драйвер порта не может обработать запрос WMI, он перенаправит запрос драйверу мини-порта.

Драйвер мини-порта получает запросы WMI от драйвера порта, только если драйвер мини-порта задает WmiDataProvider в структуре PORT_CONFIGURATION_INFORMATION. Если драйвер мини-порта поддерживает запрос, он должен обработать его и завершить запрос, вызвав ScsiPortNotification дважды, сначала с requestComplete , а затем с помощью NextRequest (или NextLuRequest).

Сведения о поддержке WMI в драйверах мини-портов см. в статье Инструментарий управления Windows.

Требования

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

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

HW_INITIALIZATION_DATA (SCSI)

PORT_CONFIGURATION_INFORMATION (SCSI)

SCSI_REQUEST_BLOCK

ScsiPortNotification

ScsiPortWmiDispatchFunction