функция обратного вызова PSCSIWMI_SET_DATABLOCK (scsiwmi.h)
Подпрограмма HwScsiWmiSetDataBlock драйвера miniport вызывается для изменения всех элементов данных в одном экземпляре блока данных. Эта подпрограмма является необязательной.
Синтаксис
PSCSIWMI_SET_DATABLOCK PscsiwmiSetDatablock;
BOOLEAN PscsiwmiSetDatablock(
[in] PVOID DeviceContext,
[in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
[in] ULONG GuidIndex,
[in] ULONG InstanceIndex,
[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] BufferSize
Задает размер буфера в байтах в буфере.
[in] Buffer
Указывает на буфер, содержащий новые значения для экземпляра .
Возвращаемое значение
HwScsiWmiSetDataBlock возвращает SRB_STATUS_PENDING, если запрос находится в ожидании, или ненулевое значение состояния SRB, если запрос был выполнен. Значение состояния SRB, возвращаемое этой подпрограммой, совпадает со значением, переданным в ScsiPortWmiPostProcess.
Комментарии
Когда драйвер мини-порта получает SRB, в котором члену Функции задано значение SRB_FUNCTION_WMI, он вызывает ScsiPortWmiDispatchFunction с указателем на инициализированную структуру SCSI_WMILIB_CONTEXT, а MinorFunction — Srb-WmiSubFunction>. Драйвер порта SCSI вызывает подпрограмму HwScsiWmiSetDataBlock драйвера мини-порта, если MinorFunction указывает запрос на изменение экземпляра блока данных.
Если драйвер мини-порта не реализует подпрограмму HwScsiWmiSetDataBlock , он должен задать для SetWmiDataBlockзначение NULL в SCSI_WMILIB_CONTEXT драйвер минипорта передает в ScsiPortWmiDispatchFunction. В этом случае драйвер порта возвращает вызывающей SRB_STATUS_ERROR.
Если драйвер мини-порта реализует HwScsiWmiSetDataBlock , он должен изменить экземпляр блока данных на новые значения из буфера.
Если все элементы в блоке данных доступны только для чтения, драйвер мини-порта должен вернуть SRB_STATUS_ERROR. В противном случае драйвер минипорта изменяет доступные элементы и возвращает SRB_STATUS_SUCCESS.
Драйвер мини-порта должен вызвать ScsiPortWmiPostProcess с соответствующим значением SrbStatus после завершения запроса. Если запрос не выполняется, необходимо вызвать ScsiPortWmiPostProcess в обратном вызове HwScsiWmiSetDataBlock . В противном случае при фактическом завершении запроса следует вызывать ScsiPortWmiPostProcess .
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | scsiwmi.h (включая Scsiwmi.h) |