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


функция обратного вызова PSCSIWMI_SET_DATAITEM (scsiwmi.h)

Подпрограмма HwScsiWmiSetDataItem драйвера мини-порта вызывается для изменения одного элемента данных в экземпляре блока данных. Эта подпрограмма является необязательной.

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

Синтаксис

PSCSIWMI_SET_DATAITEM PscsiwmiSetDataitem;

BOOLEAN PscsiwmiSetDataitem(
  [in] PVOID DeviceContext,
  [in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
  [in] ULONG GuidIndex,
  [in] ULONG InstanceIndex,
  [in] ULONG DataItemId,
  [in] ULONG BufferSize,
  [in] PUCHAR Buffer
)
{...}

Параметры

[in] DeviceContext

Указывает на определенное драйвером мини-порта контекстное значение, переданное в ScsiPortWmiDispatchFunction.

[in] RequestContext

Указывает на структуру SCSIWMI_REQUEST_CONTEXT, переданную драйвером мини-порта в ScsiPortWmiDispatchFunction.

[in] GuidIndex

Указывает блок данных по его индексу в списке идентификаторов GUID в структуре SCSI_WMILIB_CONTEXT, переданной драйвером мини-порта в ScsiPortWmiDispatchFunction.

[in] InstanceIndex

Если блок, заданный GuidIndex , содержит несколько экземпляров, InstanceIndex указывает экземпляр .

[in] DataItemId

Указывает идентификатор элемента данных, который необходимо задать.

[in] BufferSize

Задает размер буфера в байтах в буфере.

[in] Buffer

Указывает на буфер, содержащий новое значение элемента данных.

Возвращаемое значение

HwScsiWmiSetDataItem возвращает SRB_STATUS_PENDING, если запрос находится в состоянии ожидания, или ненулевое значение состояния SRB, если запрос был завершен. Значение состояния SRB, возвращаемое этой подпрограммой, совпадает с тем, которое было передано в HwScsiWmiSetDataItem. Хотя тип данных возвращаемого значения — BOOLEAN, подпрограмма HwScsiWmiSetDataItem фактически возвращает значение состояния SRB.

Комментарии

Когда драйвер мини-порта получает SRB, в котором член Функции имеет значение SRB_FUNCTION_WMI, он вызывает ScsiPortWmiDispatchFunction с указателем на инициализированную структуру SCSI_WMILIB_CONTEXT, а minorFunctionSrb-WmiSubFunction>. Драйвер порта SCSI вызывает подпрограмму HwScsiWmiSetDataItem драйвера мини-порта, если MinorFunction указывает на запрос на изменение элемента в экземпляре блока данных.

Если драйвер мини-порта не реализует подпрограмму HwScsiWmiSetDataItem , он должен задать для SetWmiDataItemзначение NULL в SCSI_WMILIB_CONTEXT, который драйвер мини-порта передает ScsiPortWmiDispatchFunction. В этом случае драйвер порта вернет вызывающей SRB_STATUS_ERROR.

Если запрос не выполняется, драйвер мини-порта должен вызвать ScsiPortWmiPostProcess в обратном вызове HwScsiWmiSetDataItem . В противном случае драйвер мини-порта должен вызвать ScsiPortWmiPostProcess после фактического завершения запроса. Драйвер мини-порта должен вызывать ScsiPortWmiPostProcess с соответствующим значением SrbStatus .

Если элемент доступен только для чтения, драйвер мини-порта вызывает ScsiPortWmiPostProcess с SRB_STATUS_ERROR. В противном случае драйвер мини-порта изменяет элемент и вызывает ScsiPortWmiPostProcess с SRB_STATUS_SUCCESS.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть scsiwmi.h (включая Scsiwmi.h)

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

SCSI_WMILIB_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiPostProcess