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


структура SCSIWMI_REQUEST_CONTEXT (scsiwmi.h)

Структура SCSIWMI_REQUEST_CONTEXT содержит сведения о контексте для SRB WMI.

Заметка

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

Синтаксис

typedef struct {
  PVOID  UserContext;
  ULONG  BufferSize;
  PUCHAR Buffer;
  UCHAR  MinorFunction;
  UCHAR  ReturnStatus;
  ULONG  ReturnSize;
} SCSIWMI_REQUEST_CONTEXT, *PSCSIWMI_REQUEST_CONTEXT;

Члены

UserContext

Указывает на буфер минипорта драйвера, содержащий любые данные, необходимые драйверу мини-порта для обработки SRB. Это может быть указатель на структуру HW_DEVICE_EXTENSION драйвера минипорта или другой буфер.

BufferSize

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

Buffer

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

MinorFunction

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

ReturnStatus

Указывает состояние возврата SRB. Этот член недействителен до тех пор, пока драйвер мини-порта вызвал ScsiPortWmiPostProcess для обновления контекста запроса.

ReturnSize

Указывает количество байтов данных, передаваемых для SRB. Этот член недействителен до тех пор, пока драйвер мини-порта вызвал ScsiPortWmiPostProcess для обновления контекста запроса.

Замечания

Когда драйвер минипорта получает SRB, в котором для элемента функции задано значение SRB_FUNCTION_WMI, он вызывает ScsiPortWmiDispatchFunction с параметрами запроса, включая указатель на контекст запроса. ScsiPortWmiDispatchFunction передает контекст запроса соответствующему драйверу минипорта подпрограмме HwScsiWmiXxx.

Когда драйвер минипорта выполняет обработку SRB и до завершения SRB, минипорт-драйвер должен вызвать ScsiPortWmiPostProcess, чтобы обновить ReturnStatus и ReturnSize членов контекста запроса. Драйвер минипорта обновляет длину и состояние передачи данных SRB до этих значений путем вызова ScsiPortWmiGetReturnSize и ScsiPortWmiGetReturnStatus. соответственно.

Контекст запроса должен оставаться допустимым во время обработки SRB. Если SRB может быть перо, минипорт-драйвер должен выделить SCSIWMI_REQUEST_CONTEXT структуру из расширения SRB, чтобы он оставался допустимым до завершения SRB. Для независимых SRB структура может быть выделена из кадра стека, который не выходит из области.

Требования

Требование Ценность
заголовка scsiwmi.h (include Scsiwmi.h)

См. также

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus

ScsiPortWmiPostProcess