функция обратного вызова PSCSIWMI_SET_DATAITEM (scsiwmi.h)
Подпрограмма HwScsiWmiSetDataItem драйвера мини-порта вызывается для изменения одного элемента данных в экземпляре блока данных. Эта подпрограмма является необязательной.
Синтаксис
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, а minorFunction — Srb-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) |